php学习之四(魔术变量)

来源:互联网 发布:单相接地故障分析算法 编辑:程序博客网 时间:2024/05/29 12:45

PHP 魔术变量

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:

<?php// 八个魔术常量namespace MyProject;echo "[1]--------__LINE__------------<br>";echo "这是第".__LINE__."行.<br>";echo "[2]--------__FILE__------------<br>";echo "文件位于".__FILE__.".<br>";echo "[3]--------__DIR__------------<br>";echo "目录位于".__DIR__.".<br>";echo "[4]--------__FUNCTION__------------<br>";function test() {  echo  '函数名为:'. __FUNCTION__.".<br>";}test();echo "[5]--------__CLASS__------------<br>";class test {    function _print() {        echo '类名为:'  . __CLASS__ . "<br>";        echo  '函数名为:' . __FUNCTION__. "<br>" ;    }}$t = new test();$t->_print();echo "[6]--------__TRAIT__------------<br>";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();echo "<br>[7]--------__METHOD__------------<br>";function test1() {    echo  '函数名为:' . __METHOD__ ."<br>";}test1();echo "[8]--------__NAMESPACE__------------<br>";echo '命名空间为:"', __NAMESPACE__, '"';?>
运行结果:
[1]--------__LINE__------------这是第4行.[2]--------__FILE__------------文件位于F:\wamp64\www\phptest\magicVar.php.[3]--------__DIR__------------目录位于F:\wamp64\www\phptest.[4]--------__FUNCTION__------------函数名为:MyProject\test.[5]--------__CLASS__------------类名为:MyProject\test函数名为:_print[6]--------__TRAIT__------------Hello World![7]--------__METHOD__------------函数名为:MyProject\test1[8]--------__NAMESPACE__------------命名空间为:"MyProject"


0 0