最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:28:43
文档

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

PHP使用方法重载实现动态创建属性的get和set方法:这篇文章主要介绍了PHP使用方法重载实现动态创建属性的get和set方法,使用本章方法可以在一个类中不用在写大量的set方法或get方法,需要的朋友可以参考下。在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能
推荐度:
导读PHP使用方法重载实现动态创建属性的get和set方法:这篇文章主要介绍了PHP使用方法重载实现动态创建属性的get和set方法,使用本章方法可以在一个类中不用在写大量的set方法或get方法,需要的朋友可以参考下。在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能


这篇文章主要介绍了PHP使用方法重载实现动态创建属性的get和set方法,使用本章方法可以在一个类中不用在写大量的set方法或get方法,需要的朋友可以参考下。

在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方法

PHP使用方法重载实现动态创建属性的get和set方法:这篇文章主要介绍了PHP使用方法重载实现动态创建属性的get和set方法,使用本章方法可以在一个类中不用在写大量的set方法或get方法,需要的朋友可以参考下。在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能
推荐度:
标签: 方法 使用 动态
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top