Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

เปรียบเทียบ define() และ const ใน PHP


ทั้ง define() และ const ใช้ประกาศค่าคงที่ (Constants) ใน PHP

ไวยากรณ์

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

มาดูความแตกต่าง:

  • ความแตกต่างพื้นฐาน: const กำหนดค่าคงที่ตอน compile time ส่วน define() ตอน run time
  • ไม่สามารถใช้ const ในบล็อกเงื่อนไข (conditional blocks) ได้ แต่ define() ทำได้
    <?php 
    if(){ 
        const VAR = 'FOO'; // invalid 
    } 
    if(){ 
        define('VAR', 'FOO'); // valid 
    } 
    ?>
  • const รับค่า scalar แบบ static (number, string, constants เช่น true, false, null, __FILE__) ส่วน define() รับ expression ใดๆ ได้
  • const เป็น case-sensitive เสมอ ส่วน define() สามารถกำหนด case-insensitive ได้โดยส่ง true เป็นอาร์กิวเมนต์ที่ 3
  • const ใช้ภายในคลาสหรืออินเทอร์เฟซเพื่อประกาศ class/interface constant ได้ ส่วน define() ไม่ได้
    <?php 
    class abc{ 
        const VAR = 2; // valid 
        echo VAR; // valid 
    } 
    class xyz{ 
        define('XUV', 2); // invalid 
        echo XUV; // invalid 
    } 
    ?>