PHP魔术常量,魔术函数,预定义常量是什么

  介绍

小编给大家分享一下PHP魔术常量,魔术函数,预定义常量是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

<强>一、魔术常量

<强> 1, <强> __construct()

实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。

<强> 2,__destruct()

当删除一个对象或对象操作终止时被调用

<强> 3,__call()

对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数

<强> 4,__get()

读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。

<强> 5,__set()
设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。

<强> 6,__toString()
打印一个对象的时候被调用。如echo $ obj;或打印obj美元;

<强> 7,__clone()
克隆对象时被调用。如:$ t=新的测试();t1=克隆t美元;

<强> 8日__sleep()
序列化之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。

<强> 9日__wakeup()
非系列化时被调用,做些对象的初始化工作。

<强> 10,__isset()
检测一个对象的属性是否存在时被调用。如:收取($ c→名称)。

<强> 11、__unset()
设置一个对象的属性时被调用。如:设置($ c→名称)。

<强> 12日__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

<强> 13日__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。

<强>举例说明:

1, <代码> __get() 当试图读取一个并不存在的属性的时候被调用。

如果试图读取一个对象并不存在的属性的时候,PHP就会给出错误信息。如果在类里添加__get方法,并且我们可以用这个函数实现类似java中反射的各种操作。

类测试   {   公共函数__get(键)   {   echo $关键。“;不存在“;   }   }      $ t=新的测试();   echo $ t→名称;   输出:名字不存在

2, <代码> __set() 当试图向一个并不存在的属性写入值的时候被调用。

类测试   {   公共函数__set(键,美元价值)   {   回声& # 39;对& # 39;。美元的关键。“附值“。美元价值;   }   }      $ t=新的测试();   $ t→name=癮ninggo";   输出:对名称赋值aninggo

3 <代码> __call() 当试图调用一个对象并不存在的方法时,调用该方法。

类测试   {   公共函数__call(键,Args)美元   {   回声“您要调用的{$关键}方法不存在。你传入的参数是:“。print_r (Args美元,真实);   }   }      $ t=新的测试();   $ t→getName(一个,去);      程序将会输出:   您要调用的getName方法不存在。参数是:数组   (   [0]=比;一个   [1]=比;去   )

4, <代码> __toString() 当打印一个对象的时候被调用,这个方法类似于java的toString方法,当我们直接打印对象的时候回调用这个函数。

类测试   {   公共函数__toString ()   {   返回“打印Test";   }   }      $ t=新的测试();   echo $ t;

运行echo $ t;的时候,就会调用$ t→__toString();从而程序将会输出:打印测试;

, <代码> __clone() 当对象被克隆时,被调用。

类测试   {   公共函数__clone ()   {   回应“我被复制了!“;   }   }      $ t=新的测试();   t1=克隆t美元;      程序输出:我被复制了!

<强>二,魔术常量

1, <代码> __LINE__
返回文件中的当前行号。
2, <代码> __FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自PHP 4.0.2起,__FILE__总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。

3 <代码> __DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于目录名(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
, <代码> __FUNCTION__

PHP魔术常量,魔术函数,预定义常量是什么