PHP5学习笔记:用__call()实现方法重载
2009-12-11 19:21
537 查看
s |
今天在网上发现了一片好文章,介绍_call()方法。 依靠这个方法可以实现方法重载,这是找了好久的东西了。 发在这里,算作笔记。 --------------------------------------- PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。 例七:__call <?php class foo { function __call($name,$arguments) { print("Did you call me? I'm $name!"); } } $x = new foo(); $x->doStuff(); $x->fancy_stuff(); ?> 这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。 例八:使用 __call 实现“过载”动作 <?php class Magic { function __call($name,$arguments) { if($name=='foo') { if(is_int($arguments[0])) $this->foo_for_int($arguments[0]); if(is_string($arguments[0])) $this->foo_for_string($arguments[0]); } } private function foo_for_int($x) { print("oh an int!"); } private function foo_for_string($x) { print("oh a string!"); } } $x = new Magic(); $x->foo(3); $x->foo("3"); ?> |
相关文章推荐
- PHP5学习笔记:用__call()实现方法重载
- PHP5学习笔记:用__call()实现方法重载
- 【java基础知识(学习笔记)】--方法的重载注意事项
- java学习笔记:Java语法基础2(循环,函数,重载,数组,方法)
- Java学习笔记-方法的重载
- c++11学习笔记3——通过更通用的方法实现新特性
- Objective-C学习笔记---类别(实现多重继承的方法)
- JavaScript 学习笔记(九)call和apply方法
- 【IMOOC学习笔记】多种多样的App主界面Tab实现方法(二)
- 【cocos2dx学习笔记】技能冷却的实现方法
- 学习笔记_JFame事件处理的三种方法(3)类直接实现接口法
- Java学习笔记十二:Java中方法的重载
- springMVC学习笔记---controller中实现多个方法
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
- unity3D-游戏/AR/VR在线就业班 C#入门方法重载学习笔记
- java学习笔记九——构造函数、方法重写、重载
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- java学习笔记---Java可变参数方法重载时要注意的几个问题
- Java学习笔记-方法重载
- 黑马程序员_c#基础知识学习笔记:方法重载和out,ref传参