------
Phần 53. Câu
lệnh điều kiện trong PHP
Đây là clip số 6: câu lệnh điều kiện – phần 1
Ví dụ câu lệnh if:
<?php
$number = 10;
if ($number % 2 == 0) {
echo 'Số chẵn';
}
?>
Ví dụ câu lệnh if…else:
<?php
$number = 1;
if ($number % 2 == 0) {
echo 'Số chẵn';
} else {
echo 'Số lẻ';
}
?>
Trong nhiều trường hợp, thường sử dụng toán tử điều kiện
thay cho câu lệnh if, vì cách viết gọn hơn.
Vi dụ, viết bằng lệnh if:
<?php
$number = 11;
if ($number >= 0
&& $number % 2 == 0) {
$result = 'Số dương
chẵn';
} else if ($number
>= 0 && $number % 2 != 0) {
$result = 'Số dương
lẻ';
} else if ($number <
0 && $number % 2 == 0) {
$result = 'Số âm
chẵn';
} else {
$result = 'Số âm lẻ';
}
echo $result;
?>
Viết bằng toán tử điều kiện:
<?php
$number = -1;
$result1 = ($number
>= 0) ? 'Số dương' : 'Số âm';
$result2 = ($number % 2
== 0) ? 'chẵn' : 'lẻ';
echo $result1 . ' ' .
$result2;
?>
Làm theo clip để giả lập một máy tính cầm tay đơn giản
(calculator).
Đây là clip số 7: câu lệnh điều kiện – phần 2 (tiếp tục làm
một máy tính cầm tay đơn giản)
Lưu lại đoạn mã để tham khảo:
[calculator.php]
<!DOCTYPE html>
<html>
<head>
<meta
charset="utf-8">
<title>Máy tính điện
tử</title>
<style>
* {
margin: 0;
padding: 0;
}
.content {
width: 600px;
height: 300px;
margin: 20px auto;
border: 1px solid green;
}
h1 {
text-align: center;
padding: 10px 0;
color: red;
}
label {
display: inline-block;
width: 100px;
text-align: right;
}
label,
input {
padding: 5px;
margin: 10px 0;
font-size: 16px;
font-weight: bold;
}
p {
text-align: center;
font-size: 20px;
font-weight: bold;
color: red;
font-style: italic;
}
</style>
</head>
<body>
<?php
$number1 = '';
$calculate = '';
$number2 = '';
$result = '';
$flag = false;
// nếu submit không là
nút Xóa
if
(isset($_POST['typeSubmit']) && $_POST['typeSubmit'] != 'Xóa') {
// nếu các ô nhập có dữ
liệu
if
(isset($_POST['number1']) && isset($_POST['calculate']) &&
isset($_POST['number2'])) {
$number1 =
$_POST['number1'];
$calculate =
$_POST['calculate'];
$number2 =
$_POST['number2'];
// hai ô Số thứ nhất và
Số thư hai là hai số
if
(is_numeric($number1) && is_numeric($number2)) {
$flag = true;
// phép toán hợp lệ
switch ($calculate)
{
case '+':
$result =
$number1 + $number2;
break;
case '-':
$result =
$number1 - $number2;
break;
case '*':
$result =
$number1 * $number2;
break;
case '/':
$result =
$number1 / $number2;
break;
default:
$result = 'Nhập
dữ liệu không hợp lệ!';
$flag = false;
break;
}
} else {
$result = 'Nhập dữ
liệu không hợp lệ!';
$flag = false;
}
} else {
$flag = false;
}
}
?>
<div
class="content">
<h1>Mô phỏng máy
tính điện tử</h1>
<form action="#"
method="post">
<label>Số thứ
nhất</label>
<input
type="text" name="number1" value="<?php echo
$number1; ?>"><br>
<label>Phép toán</label>
<input
type="text" name="calculate" value="<?php echo
$calculate; ?>"><br>
<label>Số thứ
hai</label>
<input
type="text" name="number2" value="<?php echo
$number2; ?>"><br>
<label></label>
<input
type="submit" name="typeSubmit" value="Xem kết
quả">
<input
type="submit" name="typeSubmit" value="Xóa">
</form>
<p>
<?php
if ($flag) {
echo 'Kết quả: ' .
$number1 . ' ' . $calculate . ' ' . $number2 . ' = ' . $result;
} else {
echo $result;
}
?>
</p>
</div>
</body>
</html>
Cùng phân tích đoạn mã trong tập tin calculator.php:
Để ý sẽ thấy, tập tin mã nguồn bây giờ có phần mở rộng là
.php, đoạn mã gồm cả mã HTML, CSS và mã PHP. Mã PHP được bao bằng cặp thẻ
<?php ?>. Mã HTML, CSS thì viết bình thường như trong một tập tin .html.
Khi xem nội dung trang web, đường dẫn của trình duyệt sẽ là: http://localhost:8888/hocphp/calculator.php
Nghĩa là, trình duyệt yêu cầu Web Server gửi về nội dung của
trang calculator.php, tuy nhiên trình duyệt không thể hiểu được mã nguồn PHP,
do vậy Web Server sẽ thông dịch trang calculator.php để tạo ra một tài liệu HTML,
quá trình thông dịch được thực hiện theo thứ tự từ trên xuống dưới, từ trái qua
phải, rồi gửi tài liệu HTML này về cho trình duyệt. Lưu ý, trong trường hợp này, Web
Server chỉ thực sự thông dịch và thực thi các mã lệnh nằm trong cặp thẻ
<?php ?>.
Khi người dùng nhập dữ liệu cho Form, bấm nút “Xem kết quả”
hoặc “Xóa”, trình duyệt sẽ gửi các dữ liệu của Form về Web Server, cụ thể, gửi
về trang được chỉ định trong thuộc tính action của Form. Vì giá trị của action=
“#”, nên trang xử lý dữ liệu của Form là chính nó (tức trang calculator.php),
đồng thời Web Server sẽ thông dịch lại trang calculator.php và gửi lại cho
trình duyệt một lần nữa.
Thuộc tính value của input được sử dụng để thiết lập giá trị
cho thẻ input, giá trị này sẽ được gửi về Web Server, được lưu trong biến
$_GET, $_POST hoặc $_REQUEST, được tham chiếu tới bởi thuộc tính name.
Để ý sau khi thực hiện submit Form đường dẫn trên trang web
sẽ là: http://localhost:8888/hocphp/calculator.php#
-----------
Cập nhật [7/9/2020]
-----------