PHP学习笔记——魔术方法
2014-10-27 23:27
330 查看
在PHP中的魔术方法主要有__toString,__invoke,__call,__callStatic,__get,__set,__isset,__unset,__clone这几种,下面我们分别对他们讲解一下:
1、toString :它是我们在把一个对象当作一个对象输出时调用的,我们可以在该方法中进行相应的操作,并且该方法必须返回一个字符串。
2、invoke:它是我们在把一个对象当作方法调用时自动调用的,我们需要在调用的方法中传入一个参数。
3、call:它是在对象中调用不存在的方法时自动调用的,并且这个方法需要传递两个参数$name,$agurament,$name代表的方法名称,$agurrament代表参数集合。
4、callStatic:它是在对象中调用不存在的静态方法时自动调用的,并且这个方法需要传递两个参数$name,$agurament,$name代表的方法名称,$agurrament代表参数集合。
5、set:当我们对对象中某个不存在的属性赋值时系统自动调用该方法,该方法需要两个参数,$key和$value。
9、clone:这个方法是在我们对某个对象进行clone修饰时调用。
1、toString :它是我们在把一个对象当作一个对象输出时调用的,我们可以在该方法中进行相应的操作,并且该方法必须返回一个字符串。
public function __toString(){ echo 'toString is being call'; return "";}
2、invoke:它是我们在把一个对象当作方法调用时自动调用的,我们需要在调用的方法中传入一个参数。
<?php class MagicTest { public function __invoke($paramtar){ echo 'invole is called'; } } $test1 = new MagicTest(); echo $test1(1);
3、call:它是在对象中调用不存在的方法时自动调用的,并且这个方法需要传递两个参数$name,$agurament,$name代表的方法名称,$agurrament代表参数集合。
<?php class MagicTest { public function __call($name,$parametas){ echo 'call method is called'; } public static function __callStatic($name,$parametas){ echo 'static call method is called'; } } $test1 = new MagicTest(); $test1->runTest(1,2);
4、callStatic:它是在对象中调用不存在的静态方法时自动调用的,并且这个方法需要传递两个参数$name,$agurament,$name代表的方法名称,$agurrament代表参数集合。
class MagicTest { public function __call($name,$parametas){ echo 'call method is called'; } public static function __callStatic($name,$parametas){ echo 'static call method is called'; } } $test1 = new MagicTest(); MagicTest::runTest(1,2);
5、set:当我们对对象中某个不存在的属性赋值时系统自动调用该方法,该方法需要两个参数,$key和$value。
public function __set($key,$value){ echo 'set method is called and key is '.$key.' value is '.$value; } $test1->default = 1;6、get:当我们取出某个不存在的属性的值时系统自动调用该方法,需要一个参数$key
public function __get($key){ echo 'get method is called and key is '.$key; } $test1->default;7、isset:当我们对对象中的某个不存在的属性调用isset方法或者empty方法时,系统自动调用该方法,需要一个参数。
public function __isset($obj){ echo 'isset method is called'; } isset($default);8、unset:与isset同理
9、clone:这个方法是在我们对某个对象进行clone修饰时调用。
public function __clone(){ echo 'clone method is called'; } $test2 = clone $test1;
相关文章推荐
- php 魔术方法学习笔记
- [php学习笔记]与类有关的魔术方法、魔术常量、系统函数
- PHP魔术方法学习笔记
- php学习笔记------[php面向对象中常用关键字与魔术方法]
- php学习笔记------[php面向对象中常用关键字与魔术方法]
- 【小白笔记】PHP学习之路 (21) --对象 魔术方法、变量 序列化
- php cookie使用方法学习笔记分享
- 学习笔记之php页面中js获取标签元素的ID值方法
- PHP学习笔记【15】--全局变量,静态变量,静态方法,php方法重载
- PHP学习笔记之获取文章内容(2种方法)
- PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
- PHP学习笔记六【方法-递归】
- php学习笔记------[抽象类与抽象方法]
- php学习笔记 面向对象的构造与析构方法
- PHP学习笔记十六【方法】
- php学习笔记(十八)Header使用的HTTP协议及常用方法
- PHP学习笔记五【方法】
- PHP学习(二):PHP的魔术方法
- php学习笔记------[面向对象的构造与析构方法]
- php学习笔记------[面向对象的构造与析构方法]