Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

So sánh define() và const trong PHP

Cả hai đều khai báo hằng số, nhưng có khác biệt quan trọng:

  • Thời điểm định nghĩa: const tại compile-time, define() tại runtime.
  • Trong khối điều kiện: const không dùng được trong if(), define() được.
  • Giá trị cho phép: const chỉ nhận scalar tĩnh (số, chuỗi, hằng khác). define() chấp nhận biểu thức bất kỳ.
  • Phân biệt chữ hoa/thường: const luôn case-sensitive. define() có tham số thứ 3 true để case-insensitive.
  • Trong lớp: const dùng được trong class/interface (hằng lớp). define() không thể dùng trong class.

Ví dụ trong lớp

<?php
class Abc {
    const VAR = 2; // hợp lệ
    echo self::VAR;
}
class Xyz {
    define('XUV', 2); // lỗi: không dùng define() trong class
}
?>