Hàm define sử dụng như thế nào

Khái niệm về hằng số trong PHPHằ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

Define - Defined và Const là gì trong PHP - Tìm hiểu về hằng số trong PHP, giống và khác nhau giữa Define - defined và const trong php. Bài viết này sẽ làm rõ các vấn đề trên.

Nội dung chính Show

  • Hằng số là gì trong PHP ?
  • Define là gì trong PHP ?
  • Defined là gì trong PHP ? 
  • Const là gì trong PHP ?
  • Sự khác nhau giữa hằng số và biến (constant và variable)
  • Các hằng số được khai báo sẳn trong PHP từ thuở thiên thu

Sau nhiều thời gian tiếp xúc và làm việc với các bạn Developer từ Fresher cho đến Senior hay thập chí là các Leader chuyên PHP vẫn có một số bạn bị hỏng kiến thức cơ bản về các hàm, bằng, biến, kiểu dữ liệu .. các kiến thức cơ bản cần xây dựng để bạn đi lâu - dài và xa trên con đường lập trình viên này.

Hằng số là gì trong PHP ?

Hằng số là một tên (dịnh danh) cho một giá trị đơn giản không quá phức tạp. 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 thực thi của php. Mặc định hằng số có phân biệt chữ hoa chữ thường.

Thông thường theo quy định trong viết code thì ta nên đặt tên hằng số bằng các ký tự IN HOA, và đây cũng là nguyên tắc đặt tên chung của PHP, vì mặt định trong PHP cũng đã khai báo sẳn rất nhiều hằng số rồi, tí nữa tôi sẽ đề cập. 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.

Define là gì trong PHP ?

Define là hàm của PHP dùng để khai báo, định nghĩa cho một hằng số. Hàm define này hoạt động trong các phiên bản PHP từ PHP 4, PHP 5, PHP 7, PHP 8 đều có cả, một hàm mà tồn tại từ PHP4 đến PHP vẫn còn thì bạn biết đọ quan trọng của nó đến đâu rồi đó, vì các phiên bản nâng cấp của PHP sau này đều loại đi rất nhiền hàm của PHP cũ.

Nếu bạn đã làm việc với PHP từ hồi PHP 5.3 đến khi PHP không hỗ trợ phiên bản này thì bạn phải bắt buộc nâng lên PHP 5.6 bạn sẽ thấy vô số điều mới lạ và đau đầu vì 1 số hàm đã bị loại bỏ ở PHP 5.6 và các version mới hơn sau này.

define ( string $name , mixed $value , bool $case_insensitive = false ) : bool
# Cú pháp và kiểu dữ liệu của Hàm define
  1. Tham số:
  2. $name: tên của hằng.
  3. $value: giá trị của hằng.
  4. $case_insensitive: không phân biệt chữ hoa chữ thường thì là true, ngược lại là false.
  5. Giá trị trả về: TRUE hoặc FALSE.

Có thể định nghĩa các hằng define() với các tên dành riêng hoặc thậm chí không hợp lệ, mà giá trị của nó có thể (chỉ) được truy xuất với hằng define(). Tuy nhiên, làm như vậy là không nên.

Để 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).

 

Xem thêm tài liệu từ trang gốc của PHP: https://www.php.net/manual/en/function.define.php

Defined là gì trong PHP ? 

Hàm defined() là hàm dùng để Kiểm tra xem một hằng số được đặt tên đã cho có tồn tại hay không. Nghĩa nôm na là kiểm tra xem đã được khai báo bằng hàm define hay const chưa đấy.

Giá trị trả về là kiểu Bool nghĩa là True hoặc False, không có giữa giữa nhé.

bool define  ( string $name  )
#Cú pháp

Ví dụ sau coi là hiểu ngay nha:

define('LPTECH_IP', '192.168.1.1');

# KIỂM TRA BẰNG HÀM DEFINED
defined('LPTECH_IP'); // TRUE
defined('LP_IP'); // FALSE

Hoặc ví dụ sau:

Const là gì trong PHP ?

Const là từ khoá cũng giống như hàm define dùm để khai báo một hằng số, tuy nhiên có một tí khác biệt giữa chúng, hay cùng LPTech.Asia tìm hiểu xem chúng khác nhau như thế nào bạn nhé.

Từ 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 (constant và variable)

Tên hằng số thi không cần bắt đầu bằng ký tự đô la $ 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 khai báo sẳn trong PHP từ thuở thiên thu

PHP cung cấp một số lượng lớn các hằng đã định nghĩa sẵn từ cái thuở thiên thu vạn đại nào rồi, một số hằng rất đặc biệt hay còn được gọi là Magic constant

Ảnh: Cách mà 1 hằng số hoạt động trong bộ nhớ

Để xem phiên bản PHP của các bạn đang sử dụng có khai báo sẳn những hằng số nào rồi thì sử dụng đoạn code sau nhé.

$lptech_constant_list = get_defined_constants(true);
echo '
';
var_dump($lptech_constant_list);
echo '
'; die;

 Còn đây là danh sách có sẳn luôn luôn có được họ cung cấp trên tài liệu đây.

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

Chúc các bạn có thêm kiến thức lập trình tốt hơn.

Bài viết được viết và biên soạn bởi LPTech.Asia.