Hướng dẫn dùng valid def trong PHP

Hướng dẫn dùng valid def trong PHP

Nội dung chính

  • constant() function
  • constant() example
  • Sự khác biệt giữa hằng và biến
  • Valid và invalid constant names
  • PHP Magic constants
  • Tổng kết

  • constant() function
  • constant() example
  • Sự khác biệt giữa hằng và biến
  • Valid và invalid constant names
  • PHP Magic constants
  • Tổng kết

Hằng số là tên hoặc mã định danh cho một giá trị đơn giản. Một giá trị không đổi không thể thay đổi trong quá trình thực thi tập lệnh. Theo mặc định, một hằng số có phân biệt chữ hoa chữ thường. Theo quy ước, các định danh hằng số luôn là chữ hoa. Tên hằng bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là bất kỳ số chữ cái, số hoặc dấu gạch dưới nào. Nếu bạn đã xác định một hằng số, nó không bao giờ có thể bị thay đổi hoặc không được xác định.

Để xác định một hằng số, bạn phải sử dụng hàm define() và để truy xuất giá trị của một hằng số, bạn chỉ cần chỉ định tên của nó. Không giống như với các biến, bạn không cần phải có một hằng số với $. Bạn cũng có thể sử dụng hàm hằng () để đọc giá trị của hằng số nếu bạn muốn lấy tên của hằng số đó một cách linh hoạt.

constant() function

Hàm này sẽ trả về một hằng số.

Điều này hữu ích khi bạn muốn truy xuất giá trị của một hằng số, nhưng bạn không biết tên của nó, tức là nó được lưu trữ trong một biến hoặc được trả về bởi một hàm.

constant() example

Chỉ dữ liệu vô hướng (boolean, số nguyên, float và chuỗi) mới có thể được chứa trong hằng số.

Sự khác biệt giữa hằng và biến

  • Không cần phải viết một ký hiệu đô la ($) trước một hằng số, trong đó đối với Biến, người ta phải viết một ký hiệu đô la.
  • Các hằng số không thể được định nghĩa bằng phép gán đơn giản, chúng chỉ có thể được định nghĩa bằng cách sử dụng hàm define().
  • Các hằng số có thể được định nghĩa và truy cập ở bất kỳ đâu mà không cần quan tâm đến các quy tắc xác định phạm vi thay đổi.
  • Một khi các Hằng số đã được thiết lập, có thể không được xác định lại hoặc không được xác định.

Valid và invalid constant names

// Valid constant names
define("ONE",     "first thing");
define("TWO2",    "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");

// Invalid constant names
define("2TWO",    "second thing");
 

PHP Magic constants

PHP cung cấp một số lượng lớn các hằng số được xác định trước cho bất kỳ tập lệnh nào mà nó chạy.
Có năm hằng số ma thuật thay đổi tùy thuộc vào nơi chúng được sử dụng. Ví dụ: giá trị của LINE phụ thuộc vào dòng mà nó được sử dụng trong tập lệnh của bạn. Các hằng số đặc biệt này không phân biệt chữ hoa chữ thường và như sau

Sr.NoName & Description
1 __LINE__ Số dòng hiện tại của tệp.
2 __FILE__Đường dẫn đầy đủ và tên tệp của tệp. Nếu được sử dụng bên trong bao gồm, tên của tệp được bao gồm sẽ được trả về. Kể từ PHP 4.0.2, FILE luôn chứa một đường dẫn tuyệt đối trong khi trong các phiên bản cũ hơn, nó chứa đường dẫn tương đối trong một số trường hợp.
3 __FUNCTION__Tên chức năng. (Được thêm vào trong PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên hàm như nó đã được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn là chữ thường.
4 __CLASS__Tên lớp. (Được thêm vào trong PHP 4.3.0) Kể từ PHP 5, hằng số này trả về tên lớp như nó đã được khai báo (phân biệt chữ hoa chữ thường). Trong PHP 4, giá trị của nó luôn là chữ thường.
5 __METHOD__Tên phương thức của lớp. (Được thêm vào trong PHP 5.0.0) Tên phương thức được trả về như khi nó được khai báo (phân biệt chữ hoa chữ thường).

Tổng kết

Trên đây là một số kiến thức về hằng số trong PHP, mong rằng sẽ giúp ích cho bạn. Chúc bạn học tốt.

Xem thêm:

  • Top 10 ngôn ngữ lập trình nên học trong năm 2022
  • CÁC THÓI QUEN TỐT CHO LẬP TRÌNH VIÊN
  • Top 10 IDE lập trình PHP tốt nhất 2022
  • Trở thành một lập trình viên giỏi hơn mỗi ngày

Khái niệm về hằng số trong PHP

Hằng số là một tên (dịnh danh) cho một giá trị đơn giản. Gọi là hằng số bởi vì giá trị ứng với tên hằng sau khi định nghĩa là không đổi trong quá trình thi hành script. Mặc định hằng số có phân biệt chữ hoa chữ thường. Thông thường viết code thì ta nên đặt tên hằng số bằng các ký tự IN HOA. Một hằng số phải bắt đầu bằng một ký tự chữ  (a-Z) hoặc gạch dưới (_), theo sau không được chứa các ký tự đặc biệt.

Nếu dùng biểu thức chính quy đề kiểm tra đặt tên là phù hợp, thì biểu thức đó là:

^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Định nghĩa hằng số với hàm define

Để định nghĩa một hằng số bạn phải sử dụng hàm define() với cú pháp của hàm đó như sau:

define ( string $name , mixed $value) : bool

Trong đó $name là tên hằng số, và $value là giá trí gán cho hằng số, giá trị hằng số phải là một trong các kiểu:  boolean, integer, float string.

Để lấy giá trị hằng bạn chỉ cần chỉ ra tên hằng, hằng số có phạm vi toàn cục, có nghĩa là sau khi định nghĩa bạn có thể truy cập nó ở bất kỳ đâu.

Trong trường hợp bạn dùng biến lưu trữ tên hằng thì lấy giá trị của hằng bằng hàm constant($name).

<?php 
    define("FIRSTWEEKDAY", 'MONDAY');


    echo FIRSTWEEKDAY, PHP_EOL;         //Lấy hằng số bằng cách chỉ ra tên

    $firstweek = 'FIRSTWEEKDAY';
    echo constant($firstweek), PHP_EOL; // Lấy hằng số có tên lưu trong biến $firstweek
?> 

Khi bạn định nghĩa một hằng số, nếu trước đó đã định nghĩa sẽ dẫn tới lỗi. Khi cần thiết, bạn có thể kiểm tra xem một hằng số đã được định nghĩa hay chưa bằng hàm defined($ten-hang-so);

// Kiểm tra xem hằng số MYCOLOR có tồn tại không, nếu không
// thì bắt đầu định nghĩa
if (!defined('MYCOLOR'))
{
    define('MYCOLOR', 'Green');
}

Định nghĩa hằng với từ khóa const

Với PHP 5.3.0 trở đi thì có thể dùng từ khóa const để định nghĩa hằng số, từ PHP 7 còn có thể định nghĩa hằng số bằng một mảng các giá trị, ví dụ:

// Định nghĩa hằng số bằng từ khóa const
const MONDAY = "THỨ HAI";
echo MONDAY, PHP_EOL;

// hằng số là một mảng các ký tự
const DAYOFWEEK = [
    'CHỦ NHẬT', 'THỨ HAI', 'THỨ BA', 'THỨ TƯ', 'THỨ NĂM', 'THỨ SAU', 'THỨ BẢY',
];
// Truy cập đọc hằng số
echo DAYOFWEEK[6]; // THỨ BẢY

Dùng từ khóa const cũng là cách tạo hằng số cho một lớp ở phần lập trình hướng đối tượng PHP

Sự khác nhau giữa hằng số và biến

  • Tên hằng số thi không cần bắt đầu bằng ký tự dollar $ như biến.
  • Hằng số không thể sử dụng phép gán giá trị như biến (=), giá trị của nó phải được xác định duy nhất tại hàm define.
  • Hằng số có thể truy cập bất cứ ở đâu mà không giới hạn phạm vị như biến.
  • Ngay sau khi giá trị hằng thiết lập, nó không bị thay đổi hay định nghĩa lại nữa.

Các hằng số đặc biệt (Magic Constant) trong PHP

PHP cung cấp một số lượng lớn các hằng đã định nghĩa sẵn, một số hằng rất đặc biệt gọi là Magic constant.  Dưới đây là một số hằng Magic (ma thuật):

Tên hằngMô tả
__LINE__ Dòng hiện tại của php file.
__FILE__

Tên file đầy đủ của script đang thi hành.

__DIR__ Tên thư mục đầy đủ của file PHP
__FUNCTION__ Lấy tên của hàm đang chạy
__CLASS__ Tên của lớp đang chạy
__TRAIT__ Tên của trait đang chạy
__METHOD__ Lấy tên mothod của lớp
__NAMESPACE__ Lấy tên namspace
ClassName::clas Tên đầy đủ của một lớp

Các hằng số định nghĩa trước trong PHP

Khi PHP hoạt động có vô số hằng số, một số định nghĩa bởi nhân của PHP, một số do các thành phần mở rộng (Extension), để lấy các hằng số đã định nghĩa thì dùng hàm get_defined_constants, nó trả về mảng các hằng số có trong PHP đang hoạt động của bạn

$allConst = get_defined_constants(true);
print_r($allConst);

Một số hằng số đã định nghĩa trước bởi nhân PHP tham khảo tại: reserved.constants, ví dụ PHP_EOL là ký tự xuống dòng.

Source code: const (Git), hoặc tải rphp-const