Computer >> Máy Tính >  >> Lập trình >> PHP

So sánh định nghĩa () với const trong PHP

Như chúng ta đã biết cả define () và const được sử dụng để khai báo một hằng số trong tập lệnh PHP.

Cú pháp

<?php
   const VAR = 'FOO'
   define('VAR', 'FOO');
?>

Hãy thảo luận về sự khác biệt giữa hai điều này.

  • Sự khác biệt cơ bản giữa hai điều này là const xác định hằng số tại thời điểm biên dịch, trong khi xác định () xác định chúng tại thời gian chạy.
  • Chúng tôi không thể sử dụng const từ khóa để khai báo hằng số trong các khối có điều kiện, trong khi với define () chúng ta có thể đạt được điều đó.
  • <?php
       if(){
       const VAR = 'FOO'; // invalid
       }
       if(){
       define('VAR', 'FOO'); //valid
       }
    ?>
  • const chấp nhận một đại lượng vô hướng tĩnh (số, chuỗi hoặc các hằng số khác như true, false, null, __FILE__), trong khi define () nhận bất kỳ biểu thức nào.
  • khuyết điểm luôn phân biệt chữ hoa chữ thường, trong khi define () cho phép bạn xác định các hằng số không phân biệt chữ hoa chữ thường bằng cách chuyển true làm đối số thứ ba.

  • const cũng có thể được sử dụng trong một lớp hoặc giao diện để khai báo một hằng số lớp hoặc hằng số giao diện, trong khi xác định () không thể được sử dụng vì lý do này
  • <?php
       class abc{
          const VAR = 2; // valid
          echo VAR; // valid
       }
    // but
       class xyz{
          define('XUV', 2); // invalid
          echo XUV;// invalid
       }
    ?>
  • Ví dụ trên cho thấy rằng chúng ta có thể khai báo hằng số bên trong lớp với const từ khóa nhưng xác định () không thể được sử dụng để khai báo hằng số bên trong một lớp.