手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >PHP使用方法重载实现动态创建属性的get和set方法
PHP使用方法重载实现动态创建属性的get和set方法
摘要:在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中...

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

下面的例子是使用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方法】相关文章:

JavaScript实现弹出模态窗体并接受传值的方法

jquery实现用户打分评分特效

javascript实现十秒钟后注册按钮可点击的方法

JavaScript实现将UPC转换成ISBN的方法

jQuery使用zTree插件实现树形菜单和异步加载

JQuery实现动态添加删除评论的方法

动态加载jQuery的方法

JavaScript实现单击下拉框选择直接跳转页面的方法

javascript元素动态创建实现方法

jquery实现动态改变div宽度和高度

精品推荐
分类导航