Cấu trúc điều khiển If ElseCác câu lệnh điều khiển sẽ thực hiện các hành động khác nhau ứng với các điều kiện khác nhau và rất hay được sử dụng trong lập trình.. Sử dụng cấu trúc điều kh
Trang 1Cấu trúc điều khiển If Else
Các câu lệnh điều khiển sẽ thực hiện các hành động khác nhau ứng với các điều kiện khác nhau và rất hay được sử dụng trong lập trình
Cấu trúc điều khiển If
Là một trong những tính năng rất quan trọng của một số ngôn ngữ lập trình trong đó có PHP
Sử dụng cấu trúc điều khiển if nếu muốn thực hiện một một khối lệnh khi điều kiện kiểm tra là đúng (TRUE)
Cú pháp:
1
2
3
4
5
<?php
if(expr){
statement;
}
?>
Biểu thức điều kiện (expr) sẽ trả về giá trị Boolean Nếu biểu thức điều kiện đúng thì khối lệnh (statement) sẽ được thực hiện và sai (FALSE) thì chương trình sẽ bỏ qua nó
Ví dụ:
1
2
3
4
5
6
7
<?php
if($a> $b){
print "a lớn hơn b";
# nếu $a> $b thì hiển thị "a lớn hơn b"
}
# ngược lại thì bỏ qua
?>
Cấu trúc điều khiển If Else
Sử dụng cấu trúc điều kiển if else để thực hiện một khối lệnh này nếu điều kiện kiểm tra là đúng và thực hiện khối lệnh khác nếu điều kiện kiểm tra là sai
Ví dụ:
1
2
3
4
5
6
7
<?php
if($a> $b){
print "a lớn hơn b"; # nếu đúng
}else{
print "a không lớn hơn b"; # nếu sai
}
?>
Trang 2Cấu trúc điều khiển If ElseIf Else
elseif là sự kết hợp giữa if và else nói cách khác là sự mở rộng của if trong else để thực hiện một khối lệnh khác trong trường hợp điều kiện kiểm tra là sai
Sử dụng cấu trúc điều khiển if elseif else nếu muốn lựa chọn thực hiện một khối lệnh trong một vài khối lệnh để thực hiện
Ví dụ:
1
2
3
4
5
6
7
8
9
<?php
if($a> $b){
print "a lớn hơn b";
}elseif($a== $b){
print "a bằng b";
}else{
print "a bé hơn b";
}
?>
Các elseif có thể được viết lồng nhau
Có thể viết thành 2 từ else if hay thành 1 từ elseif đều được Nhưng nếu sử dụng dấu hai chấm (:) để định nghĩa elseif thì không được viết thành 2 từ else if mà phải viết thành 1 từ elseif nếu không sẽ gặp lỗi phân tích cú pháp
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/* Sai */
if($a> $b):
print $a." lớn hơn ".$b;
else if($a== $b): // sẽ không được biên dịch
print "Lỗi phân tích cú pháp";
endif;
/* Đúng */
if($a> $b):
print $a." lớn hơn ".$b;
elseif($a== $b): // lưu ý sự kết hợp của các từ
print $a." bằng ".$b;
else:
print $a." lớn hơn hoặc bằng ".$b;
endif;
?>
Phong cách lập trình
Trang 3Khi sử dụng nhiều cấu trúc điều khiển if else lồng nhau thì mặc định else sẽ đi với if gần nó nhất (phía trên) Ví dụ:
1
2
3
4
5
6
7
8
<?php
if($a> $b) # if 1
if($a> 18) # if 2
print $a;
else # else 1
print $b;
print $c; # luôn được thực hiện
?>
Hỏi: else 1 sẽ đi với if nào (if 1 hay if 2)?
Đáp: nếu lập trình tốt thì sẽ không bao giờ phải trả lời những câu hỏi ngớ ngẩn như thế!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if($a> $b){ # if 1
if($a> 18){ # if 2
print $a;
}else{ # else 1
print $b;
print $c;
}
?>
}
/*
Luôn luôn bọc khối lệnh bằng { và }
cho dù khối lệnh chỉ có 1 câu lệnh.
Nếu không thì chỉ có 1 câu lệnh ngay liền phía sau if hoặc else
là có hiệu lực (print $c;)
*/
Hạn chế sử dụng if else lồng nhau quá nhiều (khó quản lý)
-Toán tử trong PHP(PHP Operators)
Toán tử số học:
Là phép toán cộng trừ nhân chia trong số hoc, ngoài ra còn có thêm phép chia lấy dư(%), phép tăng thêm 1, giảm đi 1
Trang 4Toán tử Miêu tả Ví dụ Kết quả
x+2
4
5-x
3
x*5
20
5/2
3 2.5
% Chia lấy dư 5%2
10%8 10%2
1 2 0 ++ Tăng thêm 1 x=5
x++
x=6
– Giảm đi 1 x=5
x–
x=4
Toán tử gán
Là phép gán trong php, sử dụng ký tự “=” kết hợp với các phép toán khác để tính toán và gán giá trị của toán hạng bên phải cho toán hạng bên trái
Toán tử so sánh
Là phép so sánh giữa 2 toán hạng với nhau, có thể là bằng, khác, lớn hơn, nhỏ hơn…
== so sánh bằng 5==8 trả về false
!= khác 5!=8 trả về true
Trang 5<> khác 5<>8 trả về true
> lớn hơn 5>8 trả về false
< nhỏ hơn 5<8 trả về true
>= lớn hơn hoặc bằng 5>=8 trả về false
<= nhỏ hợn hoặc bằng 5<=8 trả về true
Toán tử Logic
Là phép kiểm tra logic (true/false) của 1 điều kiện cho trước
&&,
AND
y=3(x < 10 && y > 1) trả
về true
y=3(x==5 || y==5) trả về false
y=3!(x==y) trả về true
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/*
Toan tu logic
trong php
*/
$x=6;
$y=3;
if ($x>7 AND $y>4)
{
echo 'thoa man dieu kien dua ra';
}else {
echo 'khong thoa man dieu kien dua ra';
}
//ket qua ra man hinh: khong thoa man dieu kien dua ra
?>
Trang 6
-Biến trong PHP (Variables in PHP)
Quy định đặt tên biến trong PHP:
- Mọi biến trong PHP bắt đầu bằng ký tự “$” (newbie mới học PHP thường quên $ trươc tên biến khi code :d )
- Biến trong PHP chỉ bao gồm chữ số, chữ cái và dấu gạch dưới(a-z, A-Z, 0-9, and _ ), tên biến không được bắt đâù bằng số(0-9) và không được có ký tự cách(space) trong tên biến
- Biến trong PHP phân biệt chữ hoa và chữ thường
- Nếu tên biến có hơn 1 từ bạn nên dùng ký tự gach dưới để kết hợp chúng với nhau
Ví dụ:
1$my_string, $myString
Các lưu ý về biến trong PHP
- Các biến trong PHP không cần được khai báo trước khi bạn gán trị cho nó :d (Java thì bắt buộc phải khai báo trước khi bạn gán giá trị)
- PHP sẽ tự động chuyển sang kiểu tương ứng, phụ thuộc vào giá trị ban khai báo
Các ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/* su dung bien
trong php
*/
//phan biet chua hoa - chu thuong
$a = 'Gia tri a ';
$A = 'Gia tri A';
echo "$a, $A";
//ket quan ra man hinh: "Gia tri a, Gia tri A";
//khai bao 1 bien kieu so
$bien_kieu_so = 2010;
//khai bao 1 bien kieu chuoi
$bien_kieu_chuoi = 'Nam nay la nam ';
//hien thi ra man hinh
echo "$bien_kieu_chu $bien_kieu_so";
//ket qua ra man hinh: "Nam nay la nam 2010";
?>
Phong cách lập trình:
Trang 71 Luôn khởi tạo 1 giá trị mặc đinh cho biến khi sử dụng nó
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
<?php
/*
<pre>truong hop nay bien $sql chua duoc su dung nhung coder van echo ra</pre>
*/
$ok = false;
if ($ok)
{
$sql = "SELECT * FROM TABLE";
}
echo $sql;
?>
nên sửa thành:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
/*
<pre>truong hop nay bien $sql da duoc khai bao day du</pre>
*/
$ok = false;
$sql = '';
if ($ok)
{
$sql = "SELECT * FROM TABLE";
}
echo $sql;
?>
2 Lưu ý khi gán biến
-Nếu biến là 1 chuỗi thì bạn nên dùng dấu nháy đơn thay vì dấu nháy kép (PHP sẽ không mất thêm time để kiểm tra), cái này nhiều bạn không để ý đến :d
Ví dụ nếu gán biến là chuỗi:
Nên dùng: $str = ‘Đay la 1 chuỗi’;
Không nên dùng: $str = “Đây là 1 chuỗi”;
-Sử dụng $_GET
Giới thiệu về $_GET
Trang 8Là một mảng kết hợp của các biến nhận được từ script hiện tại thông qua các tham số trong đường dẫn URL
Được xây dựng để nhận dữ liệu từ form sử dụng phương thức GET
Người dùng có thể nhìn thấy được thông tin được gửi từ form sử dụng phương thức GET trên thanh địa chỉ của trình duyệt và số lượng thông tin được gửi là có giới hạn
Từ PHP 4.1.0 $_GET được giới thiệu để thay thế cho $HTTP_GET_VARS (Biến
$HTTP_GET_VARS chứa cùng một thông tin khởi tạo, nhưng nó không phải là một biến
superglobal)
Lưu ý: PHP xem $HTTP_GET_VARS và $_GET là 2 biến khác nhau
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
<! bắt đầu
sử dụng phương thức truyền dữ liệu HTTP GET
method="GET"
dữ liệu sẽ được chuyển sang xin-chao.php để xử lý
action="xin-chao.php"
>
<form action="xin-chao.php" method="GET">
Hãy cho tôi biết tên bạn là gì nào?
<input type="text" name="ten" /> <! tên >
<input type="submit" /> <! submit >
</form>
<! kết thúc >
Khi người dùng nhập tên vào (Vietnam chẳng hạn) và kích vào nút “Submit Query” thì đường dẫn URL sẽ trông như thế này:
1http://php.com.vn/xin-chao.php?ten=Vietnam
Trong xin-chao.php sử dụng $_GET để nhận dữ liệu từ form đã submit (tên của các trường trong form sẽ tự động được chuyển thành khóa của mảng $_GET)
1Xin chào <?php print $_GET["ten"]; ?>!
? Khi nào thì sử dụng phương thức GET?
- Khi sử dụng phương thức GET thì tất cả các thông tin về tên biến và giá trị của chúng đều được hiển thị trong đường dẫn URL Do đó không nên sử dụng phương thức này để gửi mật khẩu hoặc các thông tin nhạy cảm
Tuy nhiên khi các biến được hiển thị trên đường dẫn URL có thể thực hiện BookMark được Nên có thể hữu dụng trong một số trường hợp
Lưu ý: phương thức GET không thích hợp với các biến có giá trị rất lớn Không nên sử dụng phương thức GET với các biến có giá trị lớn hơn 2000 ký tự
Trang 9
-Vòng lặp while và do while (while loops – do while loops)
Vòng lặp while
Là cấu trúc điều khiển đơn giản nhất trong PHP
Thực thi việc lặp lại một khối lệnh khi điều kiện kiểm tra là đúng (TRUE)
Cú pháp:
1
2
3
4
5
<?php
while(expr){
statement;
}
?>
hoặc
1
2
3
4
5
<?php
while(expr):
statement;
endwhile;
?>
Ý nghĩa của vòng lặp while rất đơn giản PHP sẽ thực thi khối lệnh (statement) nếu điều kiện kiểm tra (expr) là đúng
Điều kiện sẽ được kiểm tra trước khi vào thân vòng lặp do đó nếu có thay đổi giá trị kiểm tra ở trong thân vòng lặp thì khối lệnh vẫn được thực thi cho đến khi kết thúc khối lệnh
Nếu điều kiện kiểm tra là sai (FALSE) ngay từ đầu thì khối lệnh sẽ không được thực hiện dù chỉ là một lần
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
# ví dụ 1
# khởi tạo và gán giá trị cho biến $i là 1
$i= 1;
while($i<= 5):
# nếu giá trị của biến $i bé hơn hoặc bằng 5
print $i; # hiển thị giá trị của biến $i
$i++; # sau đó tăng giá trị của $i lên 1
endwhile;
# kết thúc vòng lặp
# ví dụ 2
$i= 1;
while($i<= 5){
print $i++;
}
Trang 1014
15
16
17
?>
Vòng lặp do while
Rất giống với vòng lặp while
Thực hiện khối lệnh ít nhất một lần Sau đó sẽ kiểm tra điều kiện nếu điều kiện là đúng thì tiếp tục thực thi khối lệnh cần lặp Nếu điều kiện là sai thì kết thúc vòng lặp
1
2
3
4
5
6
<?php
$i= 0;
do{
print $i; # hiển thị giá trị của biến $i
}while($i> 0); # sau đó mới kiểm tra điều kiện
?>
Sử dụng break, continue, goto (PHP 5.3.0) nếu muốn thoát khỏi while hay do while
Phong cách lập trình
Sử dụng
1
2
3
4
5
6
do{
thay vì
do { # tiết kiệm được 1 khoảng trắng
hoặc
do
{ # tiết kiệm được 1 dòng
Sử dụng
1
2
3
4
5
6
}while(
thay vì
} while ( # tiết kiệm được 2 khoảng trắng
hoặc
}
while ( # tiết kiệm được 1 dòng và 1 khoảng trắng
Kiểm tra thật kỹ điều kiện để tránh rơi vào trạng thái lặp vô thời hạn
Cố gắng tránh sử dụng while và do while lồng nhau