PHP và những điều cơ bản (phần 2)
Tiếp nối bài PHP và những điều cơ bản lần trước, bài này mình sẽ tiếp tục giới thiệu về những kiến thức cơ bản nhất trong PHP bao gồm vòng lặp
, Array
, function
.
Các vòng lặp trong Php - Loop
Các vòng lặp được sử dụng nhằm mục đích thực hiện khối lệnh nào đó nhiều lần. Một số loại vòng lặp trong PHP:- for
- while
- do ... while
- foreach
trong vòng lặp, break
và continue
thường được sử dụng để điều hướng vòng lặp.
1. Vòng lặp for
Thường sử dụng khi đã biết rõ số lần cần lặp.
Cú pháp vòng lặp for:
for (khởi_tạo; điều_kiện; tăng_giảm)
{
Code thi hành;
}
Ví dụ trong ví dụ lặp lại khối lệnh 10 lần ta thấy
khởi_tạo
giá trị của $i là 1
điều_kiện
là khi $i <= 10
và để kết thúc vòng lặp thì mỗi lần lặp tăng giá trị của $i lên 1 đơn vị.
<?php
for ($i = 1; $i<=10; $i++) {
echo "Vòng lặp thứ $i <br>";
}
?>
2. Vòng lặp while
Với while
thì bạn không cần biết số lần khối lệnh thi hành, mà khối lệnh sẽ thi hành khi mà điều_kiện
còn đúng - true. Cú pháp while:
while (điều_kiện là true) {
khối lệnh thi hành;
}
Trong ví dụ:
<?php
$i = 1;
while ($i < 5) {
echo "Giá trị là $i <br />";
$i++;
}
?>
thì khối lệnh vẫn được thực hiện chừng nào điều kiện $i < 5 còn đúng.
3. Vòng lặp do while
Với do ... while
, khối lệnh sẽ thi hành ngay rồi kiểm tra điều kiện, nếu điều kiện đúng thì lại lặp lại khối lệnh. Cú pháp:
do {
khối lệnh thi hành;
} while (điều_kiện);
Trong ví dụ in ra màn hình giá trị của $irồi tăng $i thêm 1 đơn vị. Sau đó, kiểm tra điều kiện đúng ($i <= 5) thì lặp lại.
<?php
$i = 0;
do {
echo "Số là " . $i . "<br/>";
$i++;
} while($i <= 5);
?>
4. Vòng lặp foreach
Vòng lặp này chỉ hoạt động dựa trên array và object.
Cú pháp 1 - chỉ lấy value khi duyệt qua mảng:
foreach (array as $value) {
code_thực_hiện;
}
Cú pháp 2:
foreach (array as $key => $value) {
code_thực_hiện;
}
Ví dụ in ra giá trị các phần tử của mảng:
<?php
$tests = array("TEST1", "TEST2", "TEST3", "TEST4", "TEST5");
foreach ($tests as $test) {
echo $test.'<br />';
}
?>
5. Break và Continue
break;
được sử dụng để thoát ra khỏi vòng lặp.
continue;
được sử dụng để bỏ qua vòng hiện tại và bắt đầu vòng lặp mới.
<?php
for ($i=0; $i<=8; $i++) {
if ($i == 2) {
continue;
}
if ($i == 5) {
break;
}
echo "Number: $i<br>";
}
?>
Kết quả sẽ là:
Trong vòng lặp chạy từ 0 đến 8, gặp $i là 2 thì sẽ thực hiện vòng lặp với $i là 3 và không thực hiện các lệnh phía sau đó. Khi $i là 5 thì break sẽ thoát khỏi hoàn toàn vòng lặp.
Array
Array - Mảng là một loại dữ liệu đặc biệt chứa nhiều giá trị trong 1 biến.Mảng cơ bản trong PHP
Mảng rỗng là mảng có dạng
$array1 = array();
$array2 = [];
Mảng dạng số là mảng mà mỗi phần tử của nó có một chỉ số là số nguyên.
<?php
$cars = ["BMW", "Mercedes", "Toyota"]; // khởi tạo mảng $name, đưa vào nó 3 phần tử
var_export($cars); // export biến mảng
?>
Kết quả sẽ là:
array (
0 => 'BMW',
1 => 'Mercedes',
2 => 'Toyota'
)
Cách truy xuất và thêm giá trị vào array
<?php
$ten = $cars[2]; // trả về Toyota
$cars[1] = 'Ford'; // phần tử chỉ số 1 gán giá trị mới
$cars[] = 'volkswagen'; // thêm vào cuối phần tử mới, chỉ số phần tử này bằng chỉ số lớn nhất cộng 1
?>
Mảng kết hợp hay Associative Arrays là mảng mà tên chỉ số là một giá trị nào đó do bạn gán vào, có thể là một string hay một số ...
Ví dụ:
<?php
$weekdays = [
'Mon' => "Monday",
'Tue' => "Tuesday",
'Wed' => "Wednesday",
'Thu' => "Thusday",
'Fri' => "Friday",
];
foreach ($weekdays as $key => $value)
echo "$key ($value) <br>";
?>
Mảng nhiều chiều hay Multidimensional Array là mảng trong nó chứa một hay nhiều mảng khác. Số chiều của mảng tương ứng với cặp [] để chọn phần tử mảng.
- Mảng một chiều: [chỉ-số]
- Mảng hai chiều: [chỉ-số-1][chỉ-số-2]
- Mảng ba chiều: [chỉ-số-1][chỉ-số-2][chỉ-số-3]
<?php
$diem = [
'Ha' => [
'Toan' => 8,
'Ly' => 7,
'Hoa' => 9
],
'Huy' => [
'Toan' => 7,
'Ly' => 8,
'Hoa' => 8
],
'Hung' => [
'Toan' => 9,
'Ly' => 9,
'Hoa' => 9
],
];
foreach ($diem as $ten => $cacdiem) {
echo $ten, PHP_EOL;
foreach ($cacdiem as $monhoc => $d)
echo " $monhoc: $d", PHP_EOL;
}
?>
Kết quả hiển thị ra
Ha
Toan: 8
Ly: 7
Hoa: 9
Huy
Toan: 7
Ly: 8
Hoa: 8
Hung
Toan: 9
Ly: 9
Hoa: 9
Hay lấy điểm 1 môn của 1 thành viên:
<?php
echo $diem['Huy']['Hoa']; // 8
?>
Một số hàm xử lý mảng thường sử dụng:
Hàm | Mô tả |
---|---|
array_filter() |
Trả về mảng, lọc các phần tử bởi hàm callback |
array_key_exists() |
Kiểm tra index $key có tồn tại (trả về true) trong mảng $a array_key_exists($key, $a) |
array_keys() |
Trả về mảng chứa các key của mảng gốc |
Function
**Hàm hay function** là một khối chứa các câu lệnh với mục đích sử dụng khối này nhiều lần trong chương trình.Hàm do bạn tự định nghĩa có dạng như sau:
function functionName() {
// code to be executed
}
functionName
là tên hàm, về quy ước đặt tên sẽ được giới thiệu trong bài về tiêu chuẩn psr-2. Để gọi hàm:
<?php
function sayHello() {
echo "Hello World!";
}
sayHello(); //gọi hàm
//Outputs "Hello World!"
?>
Tham số của hàm và tham số mặc định của tham số
Các thông tin chuyển tới cho hàm thông qua tham số của hàm, chúng có vai trò như là biến.
Các tham số mặc định có thể xác định giá trị cho tham số của hàm. Hàm sau đây, truyền vào tham số $name, khi gọi không truyền tham số vào hàm, do vậy, khi hàm thi hành nó sẽ lấy giá trị mặc định làm giá trị đối số.
<?php
function setName($name = 'noname') {
echo "Name is ".$name;
}
setName('PHP'); //Name is PHP
setName(); //Name is noname
?>
Giá trị trả về của hàm
Một hàm có thể trả về một giá trị bằng câu lệnh return $value;
. Trong hàm nếu gặp return hàm sẽ dừng thi hành và gửi giá trị trả về cho nơi gọi hàm.
<?php
function multiplication($num1, $num2) {
$result = $num1 * $num2;
return $result;
}
echo multiplication(3,4);
// Kết quả in ra: 12
?>