微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP使用方法重载实现动态创建属性的get和set方法

PHP中,我们不能够直接通过方法名相同,签名不同的方法实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中运用__call()方法实现方法重载。当调用一个类中并不存在的方法时,会自动调用__call()方法,其形式为__call($name,$arguments) 其中$name是方法名称,$arguments是一个数组类型的参数。

下面的例子是使用PHP方法重载来动态创建get和set方法。(在面向对象编程中,一个类中的属性会使用get和set来赋值,但是如果一个类中有太多的属性,比如30个,那么如果不用方法重载的话,我们就需要写30个set方法,30个get方法,自已一边慢慢写去吧。。。)

代码如下:
$property)) { return $this->$property; } if($perfix=="set") { $this->$property=$args[0]; } } } $p=new person(); $p->setname('lvcy'); $p->setage(23); $p->setAddress(chengdu); $p->setschool('uestc'); $p->setphonenum('123456'); echo $p->getname().'\\n'; echo $p->getage().'\\n'; echo $p->getaddress().'\\n'; echo $p->getschool().'\\n'; ?>

通过__Call()方法很容易的解决了这个问题,而不是编写每个属性的get set方法

原文地址:https://www.jb51.cc/js/57293.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐