1. Các kiểu dữ liệu

PHP có 3 nhóm kiểu dữ liệu:

  • Scalar Types: là kiểu đơn, như string, integer, float, boolean
  • Compound Types: là kiểu phức hợp, chứa nhiều kiểu dữ liệu nhỏ bên trong, như Array, Object, Callable, Iterable
  • Resource Type: là kiểu dữ liệu kết nối với DB, File

Ngoài ra còn có kiểu dữ liệu là null

Ví dụ mô tả Tèo, 18 tuổi, nhà nghèo, chưa có nhà, có em trai tên Tí bằng code PHP:

<?php
$age = 18; // kiểu int
$name = 'Tèo'; // kiểu string
$isRichKid = false; // kiểu boolean
$money = 0.5; //kiểu float/double
$house = null; // kiểu null
$avatar = fopen('image/avatar.png', 'r'); // kiểu resource
$brother = {
    'name' => 'Tí'
}; // kiểu object

$family = [ $brother ]; // kiểu array

Chú ý:
Array PHP không phân biệt HashTable, Map, Set, Vector… Tất cả đều chỉ một cú pháp như ví dụ trên.
bạn hoàn toàn có thể code như sau:

<?php
$vector = [1, 1, 3, 10, 5];
$set = ['a', 'b', 'c'];
$hashTable = [
    'key_1' => $set,
    'key_2' => $vector,
];

2. Control flow: if/else, loop

Control flow quyết định đoạn code nào sẽ chạy, bao nhiêu lần, và trong điều kiện nào.

<?php
$score = 85;

if ($score >= 90) {
    echo "A";
} elseif ($score >= 80) {
    echo "B";
} else {
    echo "C";
}

PHP 8 trở đi có từ khoá match để code gọn hơn khi if else liên tục nhiều lần.

<?php
$type = "success";

$message = match($type) {
    "success" => "Done",
    "error" => "Failed",
    default => "Unknown"
};

Ngoài ra cũng có từ khoá for để loop số lần cần chạy

<?php
$array = [2, 3, 3, 4, 10];
for ($i = 0; $i < 5; $i++) {
    echo $array[$i], PHP_EOL; // in tuần tự từng phần tử trong mảng
}

foreach ($array as $key => $value) {
    echo $key, PHP_EOL, $value; // in ra số 0 -> 5 và phần tử trong mảng
}

3. Function

Trong PHP, bạn có khai báo hàm (function) hoặc sử dụng hàm ẩn danh (anonymous function), xem ví dụ:

<?php
function greet(string $name) {
    return "Hello, $name";
}

echo greet('Tèo'); // in ra Tèo

$callback = function (string $name) {
    return "Hello, $name"; 
}

echo $callback('Tèo'); // vẫn in ra Tèo

Chú ý, biến khai báo bên ngoàibiến khai báo bên trong function là 2 biến khác nhau cho dù trùng tên.

<?php
$name = 'Tèo';

function greet() {
    return "Hello, $name"; // lỗi undefined biến $name
}

Để bên trong hàm gọi được biến bên ngoài hàm, cần sử dụng từ khoá use, và chỉ dùng được cho hàm ẩn danh. Khi đó hàm ẩn danh giữ biến bên ngoài, sẽ gọi là Closure

<?php
$name = 'Tèo';

$callback = function () use ($name) {
    return "Hello, $name";  
}

echo $callback(); // in ra Tèo

Cú pháp rút gọn cho hàm ẩn danh, gọi là Arrow Function

<?php
$name = 'Tèo';
$callback = fn () => "Hello, $name";
echo $callback; // in ra Tèo

Mỗi Variable có value (giá trị) và address (vùng nhớ).
Mặc định khi gán biến hay tính toán biến trong 1 function đều chỉ tương tác lên value, kết thúc function thì Variable được reset lại value. Sử dụng ký hiệu “&” để reference tới vùng nhớ.

<?php
$i = 10;
$sum = function () use ($i) {
    $i = $i + 1;
    return $i;
}

echo $sum($i); //in ra 11
echo $i; //in ra 10

$sumRef = function () use (&$i) {
    $i = $i + 1;
    return $i;
}

echo $sumRef(); // in ra 11
echo $i; //in ra 11

By admin