PHP魔术常量,区分好面试才不会不着调

白癜风诊疗康复 http://m.39.net/pf/a_7935645.html

PHP的魔术方法经常聊,可魔术常量却不是很熟悉。其实它就在你身边,你也经常用到它。

魔术常量是什么?既然称之为魔术,那必然不同凡响。魔术的精彩之处就是可以变化,代码中的魔术就是预定义。

所以魔术常量,也就是可以说成是预定义的常量。经常看喵哥文章的朋友,应该记得之前喵哥讲过常量PHP常量定义define和const有哪些区别?很容易混淆!。常量是开发者手动定义的,魔术常量其实就是扩展库已经定义好的,无需定义直接使用的常量。

如果你还记得常量的定义,自然不能忘记,它们有个特性就是定义好之后不会随意改变。如果想要修改常量十分麻烦,所以一经定义几乎不会大改。魔术常量也一样。

知道定义只好,咱们来看看都有哪些呢?

首先魔术常量的模样,类似于这样__XXX__;四个英文_分列左右两侧,中间是英文大写字符。

好,接下来就需要大家记忆一下了。

1.__LINE__:输出当前文件行数

2.__FILE__:输出文件完整文件名和完整路径

3.__DIR__:输出文件目录

可能有的朋友对__FILE__和__DIR__有点疑惑,这两个输出的差不多吧,看似类似,实际大不一样。__FILE__指令指向的是当前脚本的文件名,而__DIR__只查询文件所在的目录。这两个魔术常量会在业务逻辑中大量应用到的,比其他六个作用更多,需要熟记。

4.__FUNCTIION__:返回当前方法名

此魔术常量既然作用是返回当前方法名,那么必须得在方法中使用了,在外部是无输出的,只有在方法内部调用后,才会输出方法名。

5.__CLASS__:返回当前类名

与__FUNCTION__类似,__CLASS__返回文件类名

6.__METHOD__:返回定义类的方法名

乍一看这个功能是不是和__FUNCTION__有点像?其实他们并不一样,__FUNCTION__只返回方法名,__METHOD__既可以返回方法名,又可以返回类名和当前方法名。

7.__NAMESPACE__:输出命名空间

8.__TRAIT__:对于trait来说,它算一个PHP的关键字,PHP一直都是单继承语言,为了解决无法同时从两个基类中继承属性和方法,有了trait这一特性。

ab相当于继承了classa的值和tairtB的值。如果把traitb改回classb那么就无法同时继承类a,b。




转载请注明:http://www.aierlanlan.com/grrz/2631.html

  • 上一篇文章:
  •   
  • 下一篇文章: