数码资讯
PHP类中的魔术方法(魔术方法)的简明总结
1。__construct()和()__destruct 当实例被创建/销毁时,可以调用0个或多个参数。 班上的一个 { 函数A() { 回声建造; } __destruct()函数 { 回声摧毁一个; } } $ obj =新一(); / /复原($ obj); 注意:析构函数方法一旦存在就被调用
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
1。__construct()和()__destruct
当实例被创建/销毁时,可以调用0个或多个参数。
班上的一个
{
函数A()
{
回声建造;
}
__destruct()函数
{
回声摧毁一个;
}
}
$ obj =新一();
/ /复原($ obj);
注意:析构函数方法一旦存在就被调用,它也被称为
对于构造函数,php5.3.3开始在一个特定的命名空间中定义的类。它不再被类名所命名的方法视为构造函数,就像在没有名称空间的类中一样,它仍然是一个构造函数:
命名空间Foo;
Class Bar {
公共功能条(){
在构造函数中5.3.0-5.3.2 / /处理PHP
作为普通法作为 / php 5.3.3
}
}
如果没有名称空间,那么bar()也将被视为构造函数:
__construct()函数
{
;
}
函数A()
{
回声建造;
}
__destruct()函数
{
回声摧毁一个;
}
}
那是,它包含两__construct()和一个具有相同名称的函数作为类的名称,然后只__construct()将被称为。
2。__call()和()__callstatic
当尝试调用一个不存在的方法时调用该方法。两个参数,一个是方法的名称,另一个是调用方法的参数数组。
类的方法
{
公共功能__call($name,$参数)
{
注意:$的值是大小写。
调用对象方法$名称
(美元崩溃,争论)。
}
公共静态函数__callstatic($name,$参数)
{
注意:$的值是大小写。
调用静态方法$名称
(美元崩溃,争论)。
}
}
$ obj =新方法;
$ obj ->运行测试(,'object ','context);
方法::运行测试(,静态,'context);
在此,$参数作为数组引入:
调用对象method'runtest'in对象上下文
调用静态method'runtest'in静态语境
还要注意保护和私有的功能范围:
类testmagiccallmethod {
公共函数富()
{
__method__ php_eol回声。;
}
公共功能__call($方法,为args)
{
__method__ php_eol回声。;
如果(method_exists($,$方法))
{
$ $ > $方法();
}
}
受保护函数条()
{
__method__ php_eol回声。;
}
私有函数Baz()
{
__method__ php_eol回声。;
}
}
为测试=新testmagiccallmethod();
$;
*输出:
* testmagiccallmethod::Foo
* /
$测试条();
*输出:
* testmagiccallmethod::__call
* testmagiccallmethod::酒吧
* /
为测试-> baz();
*输出:
* testmagiccallmethod::__call
* testmagiccallmethod::巴兹
* /
3。__get()和()__set
当它试图读取一个对象不存在的属性时,就会调用它。
注:我们可以利用这个功能来执行各种各样的操作类似于java的反射。
类测试
{
公共功能__get($键)
{
回波键。不存在;
}
公共功能__set($,$值)
{
回波键。$;
}
}
$ =新测试();
回声名称。;
$ >名称=abc;
输出:
名称不存在
名称= ABC
4。__tostring()
这种方法类似于toString()方法的java,当我们直接打印对象,调用函数,以及函数必须返回一个字符串。
类测试
{
私有$ =abc;
私人$年龄= 12;
公共功能__tostring()
{
返回名称:$,名称,年龄:$;
}
}
$ =新测试();
回声$;
输出:
姓名:ABC,年龄:12
当实例被创建/销毁时,可以调用0个或多个参数。
班上的一个
{
函数A()
{
回声建造;
}
__destruct()函数
{
回声摧毁一个;
}
}
$ obj =新一();
/ /复原($ obj);
注意:析构函数方法一旦存在就被调用,它也被称为
对于构造函数,php5.3.3开始在一个特定的命名空间中定义的类。它不再被类名所命名的方法视为构造函数,就像在没有名称空间的类中一样,它仍然是一个构造函数:
命名空间Foo;
Class Bar {
公共功能条(){
在构造函数中5.3.0-5.3.2 / /处理PHP
作为普通法作为 / php 5.3.3
}
}
如果没有名称空间,那么bar()也将被视为构造函数:
__construct()函数
{
;
}
函数A()
{
回声建造;
}
__destruct()函数
{
回声摧毁一个;
}
}
那是,它包含两__construct()和一个具有相同名称的函数作为类的名称,然后只__construct()将被称为。
2。__call()和()__callstatic
当尝试调用一个不存在的方法时调用该方法。两个参数,一个是方法的名称,另一个是调用方法的参数数组。
类的方法
{
公共功能__call($name,$参数)
{
注意:$的值是大小写。
调用对象方法$名称
(美元崩溃,争论)。
}
公共静态函数__callstatic($name,$参数)
{
注意:$的值是大小写。
调用静态方法$名称
(美元崩溃,争论)。
}
}
$ obj =新方法;
$ obj ->运行测试(,'object ','context);
方法::运行测试(,静态,'context);
在此,$参数作为数组引入:
调用对象method'runtest'in对象上下文
调用静态method'runtest'in静态语境
还要注意保护和私有的功能范围:
类testmagiccallmethod {
公共函数富()
{
__method__ php_eol回声。;
}
公共功能__call($方法,为args)
{
__method__ php_eol回声。;
如果(method_exists($,$方法))
{
$ $ > $方法();
}
}
受保护函数条()
{
__method__ php_eol回声。;
}
私有函数Baz()
{
__method__ php_eol回声。;
}
}
为测试=新testmagiccallmethod();
$;
*输出:
* testmagiccallmethod::Foo
* /
$测试条();
*输出:
* testmagiccallmethod::__call
* testmagiccallmethod::酒吧
* /
为测试-> baz();
*输出:
* testmagiccallmethod::__call
* testmagiccallmethod::巴兹
* /
3。__get()和()__set
当它试图读取一个对象不存在的属性时,就会调用它。
注:我们可以利用这个功能来执行各种各样的操作类似于java的反射。
类测试
{
公共功能__get($键)
{
回波键。不存在;
}
公共功能__set($,$值)
{
回波键。$;
}
}
$ =新测试();
回声名称。;
$ >名称=abc;
输出:
名称不存在
名称= ABC
4。__tostring()
这种方法类似于toString()方法的java,当我们直接打印对象,调用函数,以及函数必须返回一个字符串。
类测试
{
私有$ =abc;
私人$年龄= 12;
公共功能__tostring()
{
返回名称:$,名称,年龄:$;
}
}
$ =新测试();
回声$;
输出:
姓名:ABC,年龄:12
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。