1)Câu l nh If:
Câu l nh If là m t trong nh ng đ c tính quan tr ng nh t c a m i ngôn ng l p trình.
Nó cho phép th c thi ch n l a các dòng mã l nh ch khi tho mãn các đi u ki n c
th .Ch ng h n:
if ($country=="ca")
echo ("Canada");//Canada đ c in ra khi bi n $country là caượ ế
N u nhi u h n m t câu l nh đ c th c hi n khi thoã mãn đi u ki n thì s d ng d uế ơ ượ
{} đ ch ra nh ng dòng l nh nào là n m trong kh i if:
//Canada s ch đ c in n u bi n $country là ca ượ ế ế
if ($country=="ca"){
echo("Canada");
echo("Ottawa");
}
Đi u ki n đ c ki m tra trong d u {}ph i tr v giá tr Boolean, ho c là true ho c là ượ
false. Cũng nh b t kỳ đi u ki n nào mà không đ c thoã mãn, zero hay là chu i r ngư ượ
(”"), các giá tr không đ c đ nh nghĩa thì t t c đ u tr v giá tr là false. Các đi u ượ
ki n có th đ c n i v i nhau b ng các toán t logic and (&&), or(||) và xor.Ví d nh ượ ư
sau:
if (((4 < 5) && (3 > 2)) xor (5 == 5))
echo ("This will not print");
Các đi u ki n phân nhánh: N u đi u ki n đ c ki m tra mà tr v false, thì PHP cho ế ượ
phép ta ch ra m t kh i l nh khác c n đ c th c hi n b ng cách dùng t khoá else. ượ
M i th trong kh i mã l nh th c thi đi u ki n này đ c xem nh m t phân nhánh ượ ư
và m i nhánh ph i đ c đ nh v trong các d u ngo c n u ch c nhi u h n m t dòng ượ ế ơ
l nh.Ví d :
if ($h < 0) {
echo ("Negative");
} else {
echo ("Positive");
}
PHP cũng cung c p t khoá elseif đ ki m tra các đi u ki n l a ch n n u đi u ki n ế
trong câu l nh if là không đúng. M t s câu l nh elseif có th đ c s d ng v i câu ượ
l nh if. Nhánh else cu i cùng cho phép chúng ta đ nh v đo n mã mà nên đ c th c ượ
hi n n u c đi u ki n if và elseif đ u không đúng. ế
if ($h < 0) {
echo ("Negative");
} elseif ($h == 0) {
echo ("Zero");
} else {
echo ("Positive");
}
Ta cũng có th ki m tra nh ng đi u ki n hoàn toàn khác nhau khi s d ng elseif:
if ($country == "ca") {
// do something ...
} elseif ($position == "h") {
// do something else ...
}
Chú ý: c hai đi u ki n trên đ u là true, nh ng ch có nhánh l nh th nh t là đ c ư ượ
th c hi n.
Cũng có th s d ng các câu l nh if l ng nhau trong câu l nh if khác.Ví d :
if ($country == "ca") {
if ($position == "h") {
echo ("Human resources positions in Canada.");
} elseif ($position == "a") {
echo ("Accounting positions in Canada.");
}
}
Các câu l nh trên cũng t ng t nh sau: ươ ư
if ($country == "ca" && $position == "h") {
echo ("Human resources positions in Canada.");
} elseif ($country == "ca" && $position == "a") {
echo ("Accounting positions in Canada.");
}
PHP cũng cung c p m t cú pháp l a ch n cho câu l nh if,đó là if….endif.Ví d :
if ($country == "ca"):
echo ("Canada");
elseif ($country == "cr"):
echo ("Costa Rica");
else:
echo ("the United States");
endif;
2)Câu l nh switch:
Đ c s d ng khi m t bi n riêng r đang đ c ki m tra so v i các giá tr khác.ượ ế ượ
Ví d :
switch ($country) {
case "ca":
echo ("Canada");
break;
case "uk":
echo ("the United Kingdom");
break;
default:
echo ("the United States");
}
Khi câu l nh switch th c hi n ki m tra giá tr c a bi n $country và so sánh nó v i m i ế
m t trong các giá tr trong các m nh đ case. Khi m t giá tr thích h p đ c tìm th y, ượ
các câu l nh k t h p v i case đ c th c hi n cho đ n khi g p câu l nh break. Còn ế ượ ế
n u không tìm ra đ c giá tr thích h p nào thì câu l nh default s đ c th c hi n.ế ượ ượ
Chú ý r ng l nh switch trong PHP thì linh ho t h n nhi u so v i h u h t các ngôn ng ơ ế
khác. Không gi ng nh C, Java và ngay c JavaScript, các giá tr case cũng có th ư
m t trong các lo i vô h ng, bao g m t t c các s ,các chu i và ngay c các bi n. ướ ế
Ví d :
$val = 6;$a = 5;$b = 6;
switch ($val) {
case $a:
echo ("five");
break;
case $b:
echo ("six");
break;
default:
echo ("$val");
}
Các m ng và các đ i t ng ch là nh ng lo i d li u là không ph i là nh ng nhãn ượ
đúng c a case trong PHP.
3). Vòng l p:
Các vòng l p chính là các ph ng ti n c a vi c th c thi m t kh i mã l nh trong m t ươ
s l n cho tr c hay là cho đ n khi g p ph i m t đi u ki n nh t đ nh. PHP có hai lo i ướ ế
vòng l p: vòng l p while ki m tra đi u ki n tr c hay là sau m i b c tính l p đi l p ướ ướ
l i và th c hi n l p l i ch khi đi u ki n là đúng. M t ki u l p khác là for, trong
tr ng h p này, s l ng b c tính l p đi l p l i đ c qui đ nh tr c khi l p l n đ uườ ượ ướ ượ ướ
và không th b thay đ i.
a.Vòng l p while:
Là câu l nh l p đ n gi n nh t. Cú pháp t ng t nh câu l nh if: ơ ươ ư
while (condition) {
//các câu l nh
}
M t vòng l p while s ki m tra m t bi u th c Boolean. N u bi u th c là false thì ế
đo n mã bên trong d u ngo c móc s đ c b qua. Ng c l i, n u có giá tr true thì ượ ượ ế
đo n mã bên trong d u ngo c móc s đ c th c hi n. Khi g p d u } thí đi u ki n ượ
ki m tra s đ c th c hi n l i và n u có giá tr là true thì đo n mã trong vòng l p s ượ ế
đ c th c hi n l i. Đi u này s ti p t c cho đ n khi g p ph i đi u ki n . Chú ý r ngượ ế ế
đi u ki n ch đ c ki m tra m i khi b t đ u vòng l p, b i v y ngay khi s chính xác ượ
c a đi u ki n thay đ i trong su t đo n gi a c a kh i l nh ,thì mã l nh s v n đ c ượ
th c thi cho đ n h t. Đ thoát kh i vào th i đi m s m h n,ta có th s d ng l nh ế ế ơ
break. Ví d :
$i = 11;
while (--$i) {
if (my_function($i) == "error") {
break; // d ng vòng l p!
}
++$num_bikes;
}
Trong ví d này, n u ta hình dung r ng hàm my_function không tr v b t kì l i nào ế
thì vòng l p s l p đi l p l i 10 l n và d ng l i khi bi n $i =0. Còn n u my_function ế ế
tr v l i, thì câu l nh break s đ c th c hi n và vòng l p s d ng l i. Có nhi u ượ
tr ng h p mà chúng ta mong mu n k t thúc ch khi s l p l i hi n th i c a vòng l pườ ế
không ph i là toàn b vòng l p c a chính nó. Đ đ t đ c đi u này, ta s d ng l nh ượ
continue.
Ví d :
$i = 11;
while (--$i) {
if (my_function($i) == "error") {
continue;
}
++$num_bikes;
}
Đo n mã này cũng l p đi l p l i 10 l n n u không có l i nào đ c tr v b i hàm ế ượ
my_function. Tuy nhiên t i lúc này, n u có l i x y ra, vi c th c hi n s l t qua s ế ướ
l p l i k ti p c a vòng l p, mà không tăng bi n đ m $num_bikes.Gi s bi n $i v n ế ế ế ế ế
l n h n 0, vòng l p s ti p t c nh bình th ng. ơ ế ư ườ
b.Vòng l p do…while:
Vòng l p này cũng gi ng nh while, ngo i tr đi u ki n đ c ki m tra t i cu i m i ư ượ
vòng l p, thay vì là đ u. Đi u này có nghĩa là vòng l p s luôn luôn th c hi n ít nh t
m t l n. Ví d :