PHP的魔术常量(常用八大常量)

依然范特西╮ 提交于 2020-03-11 10:58:37

PHP的魔术常量都是由不同的扩展库定义的,只有在加载了这些扩展时才会出现,或者动态加载后

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

__LINE__  文件中的当前行号。

实列:

<?php 

echo __LINE__;

?>

__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,择返回被包含的文件名。

<?php

echo __FILE__;

?>

__DIR__文件所在目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

他等价于dirname(__FILE__).除非是根目录,否者目录中名不包括末尾的斜杠

<?php

echo __DIR__;

?>

__FUNCTION__  函数名称 在函数中返回该函数被定义时的名字(区分大小写)。

<?php

function test() {

echo '该函数为:'.__FUNCTION__;

}

?>

 

__CLASS__  类的名称,返回该类被定义时的名字(区分大小写);

<?php

class test{

function _print(){

echo __CLASS__;

echo __FUNCTION__;

}

}

$t = new test();

$t->_print();

?>

输出结果为:

类名为:test

函数名为:_print

 

__TRAIT__ PHP实现了代码复用的一个方法,成为traits。

trait 名包括其被声明的作用区域,列如(Foo\Bar)

从基类继承的成员被插入的SayWorld Trait 中的 MyHelloWorld方法所覆盖。其行为为MyHelloWord类中定义的方法一致。

优先顺序是当前类中的方法会覆盖trait方法,而tarit方法又覆盖了基类中的方法。

<?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();

?>

__NAMESPACE__ 当前命名空间的名称 (区分大小写)。

<?PHP

namespace MyProject;

echo __NAMESPACE__;

?>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!