这篇文章主要介绍了php类中的魔术方法(magic method)简明总结,这些方法包括construct()、destruct()、call()、callstatic()、get()、set()、tostring()等,需要的朋友可以参考下
1. construct()和destruct()
在实例被 创建/销毁 的时候被调用,都可以传递0个或多个参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Note:The destructor method will be called as soon as there are no other references to a particular object, or in any order during the shutdown sequence.
关于构造函数,PHP5.3.3开始,一个定义在某个特定的命名空间里的class中以类名命名的方法将不再被认为是构造函数。在无命名空间的类中与原来一样依旧是构造函数。如:
立即学习“PHP免费学习笔记(深入)”;
1 2 3 4 5 6 7 |
|
如果没有namespace Foo; 那么Bar()还将被当作构造函数。另外,如果存在下面的情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
即既包含construct()又包含与类名同名的函数,那么将只调用construct()。
2. call()和callStatic()
当尝试调用一个不存在的方法时调用该方法。两个参数,一个是方法名,一个是被调用方法的参数数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
其中,$arguments作为一个array传入。运行结果:
Calling object method 'runTest' in object context
Calling static method 'runTest' in static context
还要注意函数的作用域protected和private:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
3.get()和set()
当试图读取一个对象并不存在的属性的时候被调用。
Note:我们可以用这个函数实现类似java中反射的各种操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
输出:
name not exists
name = abc
4. toString()
这个方法类似于java的toString()方法,当我们直接打印对象的时候回调用这个函数,函数必须返回一个string。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
输出:
name : abc, age : 12
以上就是php魔术方法应用实例代码汇总的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号