内容简介:先不多说,直接上代码,如下:运行结果:方法总结:
先不多说,直接上代码,如下:
class Demo { private $str = 'str'; //实例化时自动加载function public function __construct() { echo "start<br/>"; } //__call()用来获取没有定义的function public function __call($name, $arguments) { echo $name.'_call<br>'; } //获取私有变量 public function __get($name) { // TODO: Implement __get() method. echo $this->$name.'_get<br/>'; } //通过关键字 clone 克隆一个对象时该对象调用__clone()方法 public function __clone() { // TODO: Implement __clone() method. } //__set()设置私有变量的值 public function __set($name, $value) { // TODO: Implement __set() method. $this->$name = $value; } //————callStatic()调用没有被定义的static静态function public static function __callStatic($name, $arguments) { // TODO: Implement __callStatic() method. echo $name.'_classStatic'; } //删除类对象时候自动调用 public function __destruct() { // TODO: Implement __destruct() method. echo "end"; } } $class = new Demo(); $class->success(); $class->succ = 111; echo $class->succ; echo $class->str; echo '<br>'; $obj = clone $class; print_r($obj); echo '<br>'; $class::end();
运行结果:
start success_call 111str_get clone Demo Object ( [str:Demo:private] => str [succ] => 111 ) end_classStatic endend
方法总结:
- __set(),__get(),__isset(),__unset()可以归之为一类,适用于私有变量的设置、取值、判断、删除的操作。
-
__construct()构造函数,__desctruct()析构函数,实例化类的时候就会产生,有一点不同,构造在最前面,
析构函数在最后面 -
当调用class中没有定义的方法时,会报错fail error,如果class中定义了__call(),会直接调用__call()方法进行操作。
例如:$class->success('data');类中的__call方法开始执行把参数转换为数组形式array([0] => 'data');
__callStatic()方法同理,只是对没有定义的静态方法起作用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python 最会变魔术的魔术方法,我觉得是它
- Spring Boot魔术背后的剖析
- 《快学 Go 语言》第 14 课 —— 魔术变性指针
- 十大魔术命令:Python中工作效率飙升之策
- PHP反序列化入门之常见魔术方法
- 对于魔术方法 __call, __callStatic 新的认识
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
黑客大曝光
Joel Scambray、Vincent Liu、Caleb Sima / 姚军 / 机械工业出版社华章公司 / 2011-10 / 65.00元
在网络技术和电子商务飞速发展的今天,Web应用安全面临着前所未有的挑战。所有安全技术人员有必要掌握当今黑客们的武器和思维过程,保护Web应用免遭恶意攻击。本书由美国公认的安全专家和精神领袖打造,对上一版做了完全的更新,覆盖新的网络渗透方法和对策,介绍如何增强验证和授权、弥补Firefox和IE中的漏洞、加强对注入攻击的防御以及加固Web 2.0安全,还介绍了如何将安全技术整合在Web开发以及更广泛......一起来看看 《黑客大曝光》 这本书的介绍吧!