时间:2021-07-01 10:21:17 帮助过:34人阅读
下面的例子是使用PHP的方法重载来动态创建get和set方法。(在面向对象编程中,一个类中的属性会使用get和set来赋值,但是如果一个类中有太多的属性,比如30个,那么如果不用方法重载的话,我们就需要写30个set方法,30个get方法,自已一边慢慢写去吧。。。)
代码如下:
- <?php
- class 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方法实例详解的详细内容,更多请关注Gxl网其它相关文章!