从PHP 5以后的版本,在PHP中的类可以使用魔法的方法。两规定下划线(__)在一开始的方法是保留给神奇的方法,建议您不要在__开始最好的函数名称,除非是有魔力的方法overloading.php都_ _(两个下划线)在魔法的方法开始保留。

__tostring()和()__invoke

公共字符串__tostring(void):这种方法是自动调用一个对象时,作为一个字符串。此方法必须返回一个字符串

复制代码代码如下所示:

< PHP

魔幻类{

公共功能__tostring(){

返回你好世界!;

}

}

$ obj =新的魔法();

echo $ obj; / /你好世界!

>



__invoke():这个方法被调用时自动调用对象的方法调用。

复制代码代码如下所示:

< PHP

魔幻类{

公共功能__tostring(){

返回你好世界!;

}

公共功能__invoke($ x){

回声__invoke调用参数,美元。;

}

}

$ obj =新的魔法();

为目标(10); / / __invoke叫参数10

>



__call()和()__callstatic

__call():该__call()方法被调用时自动对象访问的方法的名称不存在

__callstatic():该__callstatic()方法会自动调用对象时,访问一个静态方法名不存在

通过这两种方法,可以以不同的方式实现相同方法的名称调用。

复制代码代码如下所示:

< PHP

魔幻类{

参数是要调用的方法的名称,

包含要传递到$名称方法的参数。

公共功能__call($name,$参数){

/ /内爆()函数将数组中的元素为一个字符串。崩溃(分离器、阵列)

。美元的名字。参数:。崩溃(

}

}

$ obj =新的魔法();

$ obj ->运行(ParA1

>



__get()和()__set

__set()被调用时,将一个值赋给一个非访问属性

__get()被调用时的不可访问的属性值的读取

复制代码代码如下所示:

< PHP

魔幻类{

在函数之前有一个静态关键字。

公共功能__get($name){

返回获取属性。美元的名字;

}

}

$ obj =新的魔法();

echo $ obj ->类名。 / / ;获取属性类名

>



__get()被调用时的不可访问的属性值的读取

复制代码代码如下所示:

< PHP

魔幻类{

公共功能__set($name,美元价值){

设置属性。美元的名字。值。美元的价值。;

}

}

$ obj =新的魔法();

$ obj -> classname = 'magicclass '; / /设置属性classnameto价值MagicClass

>



__isset()和()__unset

当isset()或空()被称为非接触性,__isset()将被称为

当unset()被称为非接触性,__unset()将被称为

复制代码代码如下所示:

< PHP

魔幻类{

公共功能__isset($name){

回声__isset调用;

返回true;

}

}

$ obj =新的魔法();

回声' $ obj -> ClassName设置。isset($ obj -> className)。; / / __isset调用obj美元-> ClassName SET1

>



以上是8个面向PHP的魔法方法的介绍和示例,希望能对您有所帮助。