PHP เมจิกตัวแปร
PHP สคริปต์ใด ๆ ที่จะใช้มันให้จำนวนของค่าคงที่ที่กำหนดไว้ล่วงหน้า
แต่คงอีกมากมายจะถูกกำหนดโดยส่วนขยายต่างๆและมีเพียงโหลดเมื่อขยายเหล่านี้จะปรากฏหรือแบบไดนามิกโหลดหรือได้รับการรวมที่รวบรวมเวลาเป็นมัน
มีแปดคงเมจิกและค่านิยมของพวกเขามีการเปลี่ยนแปลงจะเป็นพวกเขาเปลี่ยนตำแหน่งในรหัส
ยกตัวอย่างเช่น __LINE__ ค่าที่มันจะขึ้นอยู่กับสายในสคริปต์ในการตัดสินใจ ค่าคงที่พิเศษเหล่านี้เป็นกรณีตายดังนี้
__LINE__
ไฟล์ในจำนวนบรรทัดปัจจุบัน
ตัวอย่าง:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
เอาท์พุทตัวอย่างข้างต้นคือ
这是第 “ 2 ” 行
__FILE__
เส้นทางที่เต็มรูปแบบและชื่อไฟล์ของไฟล์ หากใช้ในการรวมไฟล์แล้วกลับชื่อไฟล์ที่จะรวม
ตั้งแต่ PHP 4.0.2 เป็นต้นไป __ FILE__ เสมอมีเส้นทางที่แน่นอน (ถ้ามันเป็นความเชื่อมโยงสัญลักษณ์มันเป็นเส้นทางที่แน่นอนแยกวิเคราะห์) และในรุ่นก่อนหน้านี้บางครั้งมีทางญาติ
ตัวอย่าง:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
เอาท์พุทตัวอย่างข้างต้นคือ
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
แฟ้มแค็ตตาล็อกตั้งอยู่ ถ้ารวมอยู่ในไฟล์ไดเรกทอรีจะรวมอยู่ในไฟล์จะถูกส่งกลับ
มันจะเทียบเท่ากับ dirname (__ FILE__) เว้นแต่เป็นไดเรกทอรีรากหรือชื่อไดเรกทอรีไม่รวมเฉือนที่สิ้นสุด (PHP 5.3.0 ADD)
ตัวอย่าง:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
เอาท์พุทตัวอย่างข้างต้นคือ
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
ชื่อฟังก์ชัน (PHP 4.3.0 เพิ่ม) ตั้งแต่ PHP นี้คงส่งกลับชื่อฟังก์ชั่นในขณะที่มันถูกประกาศ 5 ราย (เป็นกรณี ๆ ไป) ใน PHP 4 ค่าของมันจะเป็นตัวพิมพ์เล็กเสมอ
ตัวอย่าง:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
เอาท์พุทตัวอย่างข้างต้นคือ
函数名为:test
__CLASS__
ชื่อของคลาส (PHP 4.3.0 เพิ่ม) ตั้งแต่ PHP ผลตอบแทนที่ชื่อนี้คงชั้นถูกกำหนดให้เป็นเวลาจาก 5 (เป็นกรณี ๆ ไป)
ใน PHP 4 ค่าของมันจะเป็นตัวพิมพ์เล็กเสมอ ชื่อชั้นรวมทั้งบทบาทของพื้นที่ที่มีการประกาศ (เช่น Foo \ bar) หมายเหตุจาก PHP 5.4 เป็นต้นไป __CLASS__ ของลักษณะยังมีบทบาท เมื่อนำมาใช้ในวิธีการลักษณะ __ วิธี CLASS__ ลักษณะคือการเรียกชื่อของชั้น
ตัวอย่าง:
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
เอาท์พุทตัวอย่างข้างต้นคือ
类名为:test 函数名为:_print
__TRAIT__
ชื่อลักษณะ (PHP 5.4.0 เพิ่ม) เริ่มต้นจาก PHP 5.4.0, PHP ใช้วิธีซ้ำรหัสที่เรียกว่าลักษณะ
ชื่อลักษณะรวมทั้งบทบาทของพื้นที่ที่มีการประกาศ (เช่น Foo \ bar)
ได้รับการคุ้มครองจากระดับฐานสืบทอดสมาชิกแทรก SayWorld ลักษณะวิธี MyHelloWorld พฤติกรรม MyHelloWorld วิธีการที่สอดคล้องกำหนดไว้ในชั้นเรียน ลำดับความสำคัญเป็นวิธีที่ปัจจุบันในชั้นเรียนแทนที่วิธีการลักษณะวิธีการและลักษณะที่ครอบคลุมวิธีการเรียนฐาน
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
ดังกล่าวข้างต้นส่งออกตัวอย่างเช่นจะ:
Hello World!
__METHOD__
วิธีการในการเรียน (PHP 5.0.0 เพิ่ม) วิธีการนี้จะส่งกลับชื่อตามที่ได้มีการประกาศ (เป็นกรณี ๆ ไป)
ตัวอย่าง:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
เอาท์พุทตัวอย่างข้างต้นคือ
函数名为:test
__NAMESPACE__
ชื่อของ namespace ปัจจุบัน (เป็นกรณี ๆ ไป) อย่างต่อเนื่องนี้จะกำหนดที่รวบรวมเวลา (PHP 5.3.0 เพิ่ม)
ตัวอย่าง:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
เอาท์พุทตัวอย่างข้างต้นคือ
命名空间为:"MyProject"