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

在PHP中,我们不能直接实现方法重载的方法相同的方法名称和签名的方法不同,因为PHP是一种弱数据类型并不能区分的签名很好。但是,这__call()方法可用于PHP的类实现方法重载的调用一个方法做。不在一个班的存在时,它调用__call()方法自动,在__call形式($name,争论,其中$美元)名字的方法名,参数是一个数组类型为参数。

下面的例子是动态创建和使用PHP方法的重载方法。(在面向对象编程中,类属性将使用get和set的分配,但是如果有太多的属性,如一个30级的,所以如果你没有方法的重载,我们需要写30集30得到的,而慢慢地,自己写的…)

复制代码代码如下所示:

< PHP

班上的人

{

私有名称;

私人年龄;

私人地址;

私立学校;

私人phoneNum美元;

公共功能__call($方法,为args)

{

疝环充填strtolower美元=(substr(合法、0.3));

资产= strtolower美元(substr(合法,3));

如果(空(合片)| |空(美元资产))

{

返回;

}

如果($年= =到isset(美元->美元财产))

{

返回$这个$ $属性;

}

如果($年= = 设置)

{

美元美元美元->属性= args { 0 };

}

}

}

新人();

$ P -> setName('lvcy);

P—> setage(23);

$ P ->设置设备地址(成都);

P—> setschool('uestc);

P—> setphonenum(为123456);

echo $ P -> getName(),';

echo $ P -> getAge(),';

echo $ P > getaddress(),';

echo $ P > getschool(),';

>



这个问题是通过__call容易解决()方法,不让写每个属性设置方法。