• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php实现动态创建属性的get和set方法实例详解

php 搞代码 3年前 (2022-01-22) 14次浏览 已收录 0个评论

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

4本文¥来源gao!%daima.com搞$代*!码$网9

搞代gaodaima码

uments是一个数组类型的参数。

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

代码如下:

<?phpclass person{ private $name; private $age; private $address; private $school; private $phonenum; public function call($method,$args) {  $perfix=strtolower(substr($method,0,3));  $property=strtolower(substr($method,3));  if(empty($perfix)||empty($property))  {   return;  }  if($perfix=="get"&&isset($this->$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方法。

以上就是php实现动态创建属性的get和set方法实例详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php实现动态创建属性的get和set方法实例详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址