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

ค่าคงที่ (Constants) ใน PHP

บทนำ

ค่าคงที่ถูกแสดงเป็นตัว面值 (literals) ในนิพจน์กำหนดค่า เช่น $x=10 หรือ $name="XYZ" โดยที่ 10 และ XYZ เป็นค่าคงที่ตัวเลขและสตริงที่มอบหมายให้ตัวแปร ใน PHP สามารถกำหนดค่าคงที่ด้วยตัวระบุที่ผู้ใช้กำหนดเองได้ด้วยฟังก์ชัน define()

รูปแบบไวยากรณ์

define ( string $name , mixed $value [, bool $case_insensitive = FALSE ] ) : bool

พารามิเตอร์

ลำดับพารามิเตอร์ & คำอธิบาย
1name
ชื่อของค่าคงที่
2value
ค่าของค่าคงที่ อาจเป็นค่าสเกลาร์ (integer, float, string ฯลฯ) หรืออาร์เรย์
3case_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