Trước khi tìm hiểu phần hai, bạn hãy xem phần một tại đây: Phần 1
Trong bài này, tôi sẽ hướng dẫn bạn sử dụng những hàm, câu lệnh thường hay dùng nhất khi lập trình, như If / Else, Switch, While, Do…While, Foreach, Sort … Nếu có câu hỏi, bạn hãy liên hệ Facebook nhé.
Câu lệnh If / Else / Elseif
If / Else là một câu lệnh điều kiện, được dùng để xác định xem nếu thỏa mản điều kiện thì sẽ thực thi code bên trong.
Câu lệnh If
<?php
if (điều kiện) {
câu lệnh 1;
câu lệnh 2;
}
Lưu ý: Bạn có thể lồng bao nhiêu câu lệnh trong một khối “if” tùy thích; không bị giới hạn;
Câu lệnh If / Else
<?php
if (điều kiện) {
câu lệnh 1;
câu lệnh 2;
} else {
câu lệnh 3;
câu lệnh 4;
}
Lưu ý: Câu lệnh else là tùy chọn, có thể có hoặc không.
Câu lệnh If / Elseif / Else
<?php
if (điều kiện 1) {
câu lệnh 1;
câu lệnh 2;
} elseif (điều kiện 2) {
câu lệnh 3;
câu lệnh 4;
} else {
câu lệnh 5;
}
Lưu ý: elseif phải được viết liền.
Câu lệnh If / Else lồng nhau
<?php
if (điều kiện 1) {
if (điều kiện 2) {
câu lệnh 1;
câu lệnh 2;
} else {
câu lệnh 3;
câu lệnh 4;
}
} else {
if (điều kiện 3) {
câu lệnh 5;
câu lệnh 6;
} else {
câu lệnh 7;
câu lệnh 8;
}
}
Nhiều điều kiện
bạn có thể sử dụng nhiều điều kiện cùng một lúc bằng các toán tử logic “or” (||), “xor”, và “and” (&&).
Ví dụ:
<?php
if (điều kiện 1 && điều kiện 2) {
echo 'Thỏa mản cả hai điều kiện đều trên!';
} elseif (điều kiện 1 || điều kiện 2) {
echo 'Thỏa mản 1 trong 2 điều kiện!';
} else (điều kiện 1 xor điều kiện 2) {
echo 'Một điều kiện là đúng và một điều kiện là sai!';
}
Cú pháp If / Else thay thế
Ngoài ra còn có một cú pháp thay thế cho dấu ngoặc {} là dấu hai chấm : và cuối là endif;
if (điều kiện 1):
câu lệnh 1;
else:
câu lệnh 2;
endif;
Cách để làm gọn If / Else
Với cách này if / else chỉ còn một dòng.
Giả sử bạn cần hiển thị “Hello (tên người dùng)” nếu người dùng đã đăng nhập và “Hello guest” nếu họ chưa đăng nhập.
Câu lệnh If / Else thông thường:
if($user == !NULL {
$message = 'Hello '. $user;
} else {
$message = 'Hello guest';
}
Rút gọn
$message = 'Hello '.($user == !NULL ? $user : 'Guest');
Switch
Trong PHP, câu lệnh Switch rất giống với câu lệnh Switch trong JavaScript. Cho phép bạn kiểm tra trường-hợp hợp-lệ hoặc không với rất nhiều điều kiện khác nhau, dễ đọc hơn if:
<?php
// Switch Statement Example
switch ($i) {
case "1":
echo "Hạn nhất";
break;
case "2":
echo "Hạn nhì";
break;
case "3":
echo "Hạn ba";
break;
default:
echo "Không có hạn";
break;
}
Break
break; câu lệnh để thoát khỏi Switch Nếu bạn không sử dụng break; câu lệnh bạn có thể chạy nhiều trường hợp, rất có thể sẽ thực thi code không mong muốn.
Ví dụ:
<?php
$j = 0;
switch ($i) {
case '2':
$j++;
case '1':
$j++;
break;
default:
break;
}
Nếu $i = 1, giá trị của $j sẽ là:
1
Nếu $i = 2, giá trị của $j sẽ là:
2
Vì nó chạy tiếp code phía dưới.
Có thể dùng return để trả về giá trị:
<?php
switch ($i) {
case '1':
return 1;
case '2':
return 2;
default:
break;
}
Thí dụ khác
<?php
//random từ 1 đến 6
$diceNumber = mt_rand(1, 6);
//khởi tạo một biến rỗng
$numText = "";
//calling switch statement
switch($diceNumber)
{
case 1:
$numText = "One";
break;
case 2:
$numText = "Two";
break;
case 3:
case 4:
// case 3 và 4 sẽ hiện dòng này
$numText = "Three or Four";
break;
case 5:
$numText = "Five";
echo $numText;
// break; //không chỉ định ngắt hoặc trả về nó sẽ tiếp tục thực thi cho trường hợp tiếp theo.
case 6:
$numText = "Six";
echo $numText;
break;
default:
$numText = "unknown";
}
//in ra kết quả
echo 'Dice show number '.$numText.'.';
?>
Output
if case is 1
> Dice show number One.
if case is 2
> Dice show number Two.
if case is 3
> Dice show number Three or Four.
if case is 4
> Dice show number Three or Four.
if case is 5
> FiveSixDice show number Six.
if case is 6
> SixDice show number Six.
if none of the above
> Dice show number unknown.
Vòng lặp
Khi bạn cần lặp lại một nhiệm vụ nhiều lần, bạn có thể sử dụng một vòng lặp thay vì thêm nhiều lần một đoạn code giống nhau.
Sử dụng break
trong vòng lặp để dừng vòng lặp.
Vòng lặp for
Vòng lặp được chạy với số lần cụ thể.
<?php
for($index = 0; $index < 5; $index ++)
{
echo "Current loop counter ".$index.".\n";
}
?>
/*
Output:
Current loop counter 0.
Current loop counter 1.
Current loop counter 2.
Current loop counter 3.
Current loop counter 4.
*/
Vòng lặp While
Vòng lặp khi điều kiện còn đúng
<?php
$index = 10;
while ($index >= 0)
{
echo "The index is ".$index.".\n";
$index--;
}
?>
/*
Output:
The index is 10.
The index is 9.
The index is 8.
The index is 7.
The index is 6.
The index is 5.
The index is 4.
The index is 3.
The index is 2.
The index is 1.
The index is 0.
*/
Vòng lâp Do … while
Vòng lặp khi điều kiện còn đúng
<?php
$index = 3;
do
{
// execute this at least 1 time
echo "Index: ".$index.".\n";
$index --;
}
while ($index > 0);
?>
/*
Output:
Index: 3.
Index: 2.
Index: 1.
*/
Vòng lặp foreach
Dùng để lặp qua một mảng giá trị
<?php
$array = ['một', 'hai', 'ba'];
foreach( $array as $a ) {
echo $a.'</br>';
}
// in màng hình:
// một
// hai
// ba
Functions
Function(hàm) là một khối câu lệnh có thể được sử dụng lặp lại trong web, khi gọi function đó
Function + gọi function
function say_hello() {
return "Hello!";
}
echo say_hello();
Function + tham số truyền vào + gọi function
function say_hello($friend) {
return "Hello " . $friend . "!";
}
echo say_hello('Tommy');
strtoupper – IN HOA chữ!
Là một function từ PHP định sẵn:
function makeItBIG($a_lot_of_names) {
foreach($a_lot_of_names as $the_simpsons) {
$BIG[] = strtoupper($the_simpsons);
}
return $BIG;
}
$a_lot_of_names = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(makeItBIG($a_lot_of_names));
Arrays (mảng)
Mảng giống như một biến thông thường, nhưng chứa nhiều giá trị có thứ tự. Rất cần thiết khi bạn lưu trữ danh sách tên học sinh hoặc tên thành phố.
Các loại mảng
Trong PHP, có hai loại mảng: Mảng được lập chỉ mục và Mảng liên kết. Mỗi loại đều có công dụng riêng.
Mảng được lập chỉ mục
Một mảng được lập chỉ mục là một danh sách các giá trị có thứ tự. Mỗi giá trị này trong mảng được gán một số chỉ mục. Chỉ mục cho mảng luôn bắt đầu từ 0 và tăng dần.
<?php
$shopping_list = array("eggs", "milk", "cheese");
?>
$shopping_list[0]
sẽ trả về"eggs"
,$shopping_list[1]
sẽ trả về"milk"
,- and
$shopping_list[2]
sẽ trả về"cheese"
.
Mảng liên kết
Mảng liên kết là danh sách các giá trị(value) được truy cập thông qua một khóa(key) thay vì số chỉ mục như ở trên. Khóa(key) có thể là bất kỳ giá trị nào nhưng nó phải là duy nhất cho mảng.
<?php
$student_scores = array("Joe" => 83, "Frank" => "93", "Benji" => "90");
?>
$student_scores['Joe']
sẽ trả về83
,$student_scores['Frank']
sẽ trả về93
,$student_scores['Benji']
sẽ trả về90
.
Mảng đa chiều
Mảng đa chiều là mảng chứa các mảng khác. Cho phép bạn tạo cấu trúc dữ liệu phức tạp hơn.
<?php
$students =
array(
array("first_name" => "Joe", "score" => 83, "last_name" => "Smith"),
array("first_name" => "Frank", "score" => 92, "last_name" => "Barbson"),
array("first_name" => "Benji", "score" => 90, "last_name" => "Warner")
);
?>
Để lấy first_name của học sinh đầu tiên bằng cách:
$students[0]['first_name']
Đếm độ dài của một mảng – Hàm count()
Hàm count() được sử dụng để trả về độ dài (số phần tử) của một mảng:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo count($cars); //in màn hình: 3
?>
Sắp xếp Mảng
Hàm sort() sắp xếp các giá trị của một mảng theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)
<?php
$freecodecamp = array("hoc", "code", "free");
sort($freecodecamp);
print_r($freecodecamp);
?>
Output:
Array
(
[0] => code
[1] => free
[2] => hoc
)
rsort()
Hàm rsort() sắp xếp các giá trị của một mảng theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)
<?php
$freecodecamp = array("hoc", "code", "free");
rsort($freecodecamp);
print_r($freecodecamp);
?>
Đầu ra:
Array
(
[0] => hoc
[1] => free
[2] => code
)
asort()
Hàm asort() sắp xếp một mảng, theo các giá trị của nó, theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)
<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
asort($freecodecamp);
print_r($freecodecamp);
?>
Đầu ra:
Array
(
[two] => code
[one] => free
[zero] => hoc
)
ksort()
Hàm ksort() sắp xếp một mảng liên kết, theo các khóa(key) của nó, theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)
<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
ksort($freecodecamp);
print_r($freecodecamp);
?>
Đầu ra:
Array
(
[one] => code
[two] => free
[zero] => hoc
)
arsort()
Hàm arsort() sắp xếp mảng liên kết, theo các giá trị của nó, theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)
<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
arsort($freecodecamp);
print_r($freecodecamp);
?>
Đầu ra:
Array
(
[zero] => hoc
[one] => free
[two] => code
)
krsort()
Hàm krsort() sắp xếp một mảng liên kết, bằng các khóa(key) của nó theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)
<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
krsort($freecodecamp);
print_r($freecodecamp);
?>
Đầu ra:
Array
(
[zero] => hoc
[two] => free
[one] => code
)
Forms
Forms là một biểu mẫu để người dùng nhập dữ liệu hoặc chọn dữ liệu từ trang web. Khi người dùng nhấn gửi, chúng ta có thể dùng PHP để lấy dữ liệu đó.
Để tạo biểu mẫu bạn cần một số thuộc tính cơ bản trong HTML. PHP sử dụng các biến ‘post’ và ‘get’ để lấy dữ liệu từ biểu mẫu.
<html>
<body>
<form method="get" action="trang_dich.php">
<input type="text" name="firstName" /><br />
<input type="submit" name="submit" value="Gửi" /><br />
</form>
<body>
</html>
Thuộc tính ‘method’ cho form biết cách gửi dữ liệu(có thể get / post). Sau đó, thuộc tính ‘action’ cho biết nơi gửi dữ liệu. Còn thuộc tính ‘name’ là rất quan trọng và phải là duy nhất vì trong PHP giá trị name phải là duy nhất, để nhận dạng input đó.
Kiểm tra đầu vào bắt buộc
PHP có một số hàm để kiểm tra các input. Các hàm đó là isset, empty và is_numeric.
Isset sẽ kiểm tra xem field đã được đặt chưa và không phải là giá trị rỗng. Thí dụ:
$firstName = $_GET['firstName']
if(isset($firstName)){
echo "firstName field is set". "<br>";
}
else{
echo "The field is not set."."<br>";
}
Xử lý đầu vào biểu mẫu
bạn có thể lấy giá trị từ form bằng biến $POST và $GET, tùy thuộc vào thuộc tính ‘method’ của form đó
$_POST["firstname"] hoặc $_GET['firstname']
Xem thêm: