Hằng, autoload

Hằng số trong class

Hằng số trong class được định nghĩa với từ khóa const và không có dấu $ trước tên hằng. Có thể truy cập hằng số qua class hoặc qua object sử dụng toán tử :: Hằng số mặc định đặt ở chế độ public. Từ phiên bản PHP 7.1 có thể khai báo với từ khóa public, protected hoặc private.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php
class MyClass {
  const CONSTANT = 'giá trị hằng số';
  
  function showConstant() {
    echo $this::CONSTANT . "\n";
  }
}

echo MyClass::CONSTANT; // -> giá trị hằng số

$object = new MyClass();
$object::CONSTANT; // -> giá trị hằng số

$object->showConstant(); -> // -> giá trị hằng số\n

Autoload

Sử dụng hàm spl_autoload_register để gọi tự động chạy các câu lệnh cần thiết khi tạo class/interface mới trong trường hợp class/interface đó chưa được khai báo.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php
// file MyClass1.php
class MyClass1 {};

// file MyClass2.php
class MyClass2 {};

// file test.php
spl_autoload_register(function($class_name) {
  echo $class_name . " được load\n";
  include $class_name . '.php';
});

$obj  = new MyClass1();
$obj2 = new MyClass2();