下面的例子是使用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方法。
| 欢迎光临 一起源码网 (https://www.171739.xyz/) | Powered by Discuz! X3.3 |