บทนำ
ค่าคงที่ถูกแสดงเป็นตัว面值 (literals) ในนิพจน์กำหนดค่า เช่น $x=10 หรือ $name="XYZ" โดยที่ 10 และ XYZ เป็นค่าคงที่ตัวเลขและสตริงที่มอบหมายให้ตัวแปร ใน PHP สามารถกำหนดค่าคงที่ด้วยตัวระบุที่ผู้ใช้กำหนดเองได้ด้วยฟังก์ชัน define()
รูปแบบไวยากรณ์
define ( string $name , mixed $value [, bool $case_insensitive = FALSE ] ) : bool
พารามิเตอร์
| ลำดับ | พารามิเตอร์ & คำอธิบาย |
|---|---|
| 1 | name ชื่อของค่าคงที่ |
| 2 | value ค่าของค่าคงที่ อาจเป็นค่าสเกลาร์ (integer, float, string ฯลฯ) หรืออาร์เรย์ |
| 3 | case_insensitive ตัวระบุค่าคงที่คำนึงถึงตัวพิมพ์เล็ก/ใหญ่โดยค่าเริ่มต้น หากพารามิเตอร์นี้ตั้งเป็น true name และ NAME จะถูกจัดการเหมือนกัน |
ค่าที่คืน
ฟังก์ชันคืนค่า TRUE หากการกำหนดสำเร็จ มิฉะนั้นคืนค่า FALSE
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงการใช้ฟังก์ชัน define() กำหนดค่าคงที่:
<?php define("maxmarks",300); define("pi", 3.142); define("subjects",["phy", "che", "maths"]); ?>
Magic Constants (ค่าคงที่จादู)
PHP มีค่าคงที่ที่กำหนดไว้ล่วงหน้าจำนวนมาก แต่ส่วนใหญ่จะเปิดใช้งานก็ต่อเมื่อส่วนขยาย (extensions) ที่เกี่ยวข้องติดตั้งแล้ว อย่างไรก็ตาม ค่าคงที่ต่อไปนี้ - เรียกว่า magic constants - พร้อมใช้งานเสมอ:
| ชื่อ | คำอธิบาย |
| __LINE__ | หมายเลขบรรทัดปัจจุบันของไฟล์ |
| __FILE__ | พาธเต็มและชื่อไฟล์ |
| __DIR__ | ไดเรกทอรีของไฟล์ |
| __FUNCTION__ | ชื่อฟังก์ชัน หรือ {closure} สำหรับ anonymous functions |
| __CLASS__ | ชื่อคลาส รวม namespace ที่ประกาศไว้ (เช่น Foo\Bar) ตั้งแต่ PHP 5.4 __CLASS__ ทำงานใน traits ด้วย เมื่อใช้ใน trait method __CLASS__ คือชื่อคลาสที่ trait ถูกใช้ |
| __TRAIT__ | ชื่อ trait รวม namespace ที่ประกาศไว้ (เช่น Foo\Bar) |
| __METHOD__ | ชื่อเมธอดของคลาส |
| __NAMESPACE__ | ชื่อของ namespace ปัจจุบัน |
ตัวอย่างต่อไปนี้สาธิตบางส่วนของ magic constants:
ตัวอย่าง
<?php echo "Line no: " . __LINE__ . "\n"; echo "file name : " . __FILE__ . "\n"; echo "directory name: " . __DIR__ . "\n"; function myfunction(){ echo "function name: " . __FUNCTION__ . "\n"; } class myclass{ public function __construct() { echo __CLASS__ . "\n"; } public function mymethod(){ echo __METHOD__; } } $obj=new myclass(); $obj->mymethod(); ?>
ผลลัพธ์
Line no: 2 file name : C:\xampp\php\testscript.php directory name: C:\xampp\php myclass myclass::mymethod