• About

Viet PHP

PHP = ['newbie' => 'cơ bản', 'coder' => 'nâng cao', 'professional'=>'chuyên sâu']

  • PHP
    • OOP
    • Basic
  • WordPress
  • Bài tập PHP
  • PHP 7
Home PHP Basic Hằng trong PHP

Hằng trong PHP

Posted on April 8, 2018 Written by admin Leave a Comment

Hằng là một kiểu biến, chứa dữ liệu trong PHP. Giá trị này không thể thay đổi và không thể xóa (unset). Hằng thường được viết hoa. Hằng có giá trị toàn cục (global scope).

Để gọi danh sách hằng dùng hàm get_defined_constants(), gía trị trả về là array cho biết tất cả các hằng hiện có.

Syntax của hằng

Có hai cách thiết lập hằng:

Cách 1: define(‘HẰNG’, ‘giá trị của hằng’);

Cả ‘HẰNG’ và ‘Giá trị của hằng’ nếu là string phải đặt trong ngoặc đơn hoặc kép, nếu là integer thì không cần.

Ví dụ:

define ('VIETPHP' , 'Học PHP chuyên sâu bằng cách thực hành');

Khi echo VIETPHP; ta có được giá trị ‘Học PHP chuyên sâu bằng cách thực hành’.

Cách 2: const VIETPHP = ‘Cách tạo hằng thứ hai’;

Cách thứ hai này không yêu cầu tên hằng phải đặt trong ngoặc đơn hoặc kép.

Vì hằng có giá trị toàn cục và không xóa được nên khi hằng trùng tên thì báo lỗi ngay.

Sự khác biệt giữa cách define và const

Mặc dù giá trị của hằng là không thay đổi, nhưng khi ta gán giá trị của hằng là biến, thì khi biến thay đổi hằng cũng thay đổi theo.

Ví dụ:

$a = 'giá trị của hằng là biến ABC';

define('XYZ', $a);

echo XYZ; // Kết quả là 'giá trị của hằng là biến ABC'

$a = 'Giá trị mới của a';

echo XYZ; // Kết quả vẫn là 'giá trị của hằng là biến ABC'

Như vậy, dù ta update giá trị của biến $a thì hằng XYZ vẫn không đổi.

Tuy nhiên, vì $a trong define (‘XYZ’, $a) là một biến, nên nếu như trước khi tạo hằng, ta thay đổi giá trị của biến này thì giá trị của hằng cũng thay đổi.

$a = 'giá trị của hằng là biến ABC'; 
define('XYZ', $a); 
echo XYZ; // Kết quả là 'giá trị của hằng là biến ABC'

//sửa giá trị của $a một tẹo

$a = 'giá trị của hằng là biến ABC- cập nhật'; 
define('XYZ', $a); 
echo XYZ; // Kết quả là 'giá trị của hằng là biến ABC cập nhật'

Ta ngược lại, không thể thực hiện việc tạo giá trị động cho hằng như cách trên khi dùng cú pháp

const ABC = $a; // lỗi ngay :-)

Tên hằng là CASE-SENSITIVE

Nói cách khác define (‘ABC’, ‘value’) khác với define (‘aBC’, ‘value’);

Một chú ý nữa, có hai cách echo giá trị của hằng là:

define ('ABC', 'hằng mới tạo');
echo ABC;
echo constant("ABC"); // same thing as the previous line, chú ý ngoặc kép trong dấu ()

Để xác định một hằng đã có hay chưa, ta dùng hàm defined(). Ví dụ:

define('ABC', 'đây là hằng');

if(defined(ABC)){

    echo "Hàm ABC đã được định nghĩa";
}else{

    echo "Hằng ABC chưa được định nghĩa";

}

Kết quả, Hàm ABC đã được định nghĩa

Đọc chú ý sau trong PHP document: If you want to see if a variable exists, use isset() as defined() only applies to constants. If you want to see if a function exists, use function_exists().

Như vậy isset() dùng để “tra xét” giá trị của biến có tồn tại hay không, defined() dành cho hằng còn function_exists() dành cho hàm.

Chú ý là các hàm này sẽ trả về dạng BOOLEAN tức TRUE hoặc FALSE 🙂

Filed Under: Basic, PHP

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • 11 basic PHP questions.
  • How to pass a variable to the callback function provided by Laravel Collection
  • Cài Sodium trên PHP 7.2 Centos
  • Dependency Injection và Container
  • Hàm array_map() và array_walk()

Recent Comments

  • admin on Dependency Injection
  • Vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection

Archives

  • November 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018

Categories

  • Bài tập PHP
  • Basic
  • Laravel
  • OOP
  • OOP
  • PHP
  • String
  • Uncategorized
  • WordPress

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2020 · Focus Pro on Genesis Framework · WordPress · Log in