Giới thiệu
Hằng số được biểu diễn dưới dạng literal trong biểu thức gán như $x = 10 hoặc $name = "XYZ" nơi 10 và XYZ là hằng số numeric và string gán cho biến. Trong PHP, có thể định nghĩa hằng số với identifier do người dùng định nghĩa nhờ hàm define().
Cú pháp
define(string $name, mixed $value, bool $case_insensitive = FALSE): bool
Tham số
| STT | Tham số & Mô tả |
|---|---|
| 1 | name - tên hằng số |
| 2 | value - giá trị hằng số: bất kỳ scalar (int, float, string) hoặc array |
| 3 | case_insensitive - hằng số mặc định phân biệt chữ hoa/thường. Nếu true, name và NAME được coi giống nhau |
Giá trị trả về
Trả về TRUE nếu định nghĩa thành công, ngược lại FALSE.
Ví dụ
Định nghĩa hằng số với define()
<?php
define("MAX_MARKS", 300);
define("PI", 3.142);
define("SUBJECTS", ["phy", "che", "maths"]);
?>
Magic Constants (Hằng số ma thuật)
PHP có nhiều hằng số định nghĩa sẵn nhưng hầu hết yêu cầu extension tương ứng. Tuy nhiên, các hằng số sau - gọi là magic constants - luôn khả dụng:
| Tên | Mô tả |
|---|---|
| __LINE__ | Số dòng hiện tại của file |
| __FILE__ | Đường dẫn đầy đủ và tên file |
| __DIR__ | Thư mục của file |
| __FUNCTION__ | Tên function, hoặc {closure} cho anonymous function |
| __CLASS__ | Tên class. Bao gồm namespace (ví dụ: Foo\Bar). Từ PHP 5.4 __CLASS__ cũng hoạt động trong trait. Khi dùng trong trait method, __CLASS__ là tên class sử dụng trait. |
| __TRAIT__ | Tên trait. Bao gồm namespace. |
| __METHOD__ | Tên method của class |
| __NAMESPACE__ | Tên namespace hiện tại |
Ví dụ magic constants
<?php
echo "Line no: " . __LINE__ . "\n";
echo "file name: " . __FILE__ . "\n";
echo "directory: " . __DIR__ . "\n";
function myfunction() {
echo "function name: " . __FUNCTION__ . "\n";
}
class MyClass {
public function __construct() {
echo __CLASS__ . "\n";
}
public function mymethod() {
echo __METHOD__;
}
}
$obj = new MyClass();
$obj->mymethod();
?>
Kết quả
Line no: 2 file name: C:\xampp\php\testscript.php directory: C:\xampp\php myclass myclass::mymethod