php中args,php中的重载,即-凯发k8官方网
今天温习了下php基础,看了看看见有个php重载,看起来很熟悉,但是想不起,然后就敲敲试试。发现并不能实现重载。
为什么呢?我们先来看看什么叫做方法重载:方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
但是php的__call()这个魔术方法只能实现捕捉到调用函数的方法没有适合才能用上,在类里面方法存在时候,跟换参数,并不能实现描述方法重载的这个定义。大伙儿可以试一试。下面是我测试的代码。
class computer {
public $price = 100;
/**
* 价格上调
* @param $price
* @return mixed
*/
public function priceup($price){
return $this->price = $price;
}
/**
* php的重载
* @param $name
* @param $arguments
* @return mixed
*/
public function __call($name, $arguments)
{
if ($name == 'priceups') {
return $arguments;
}
if ($name = 'priceup') {
return $arguments;//
}
}
}
$computer = new computer();
$computer->priceup(100);//上调100 输出为200
$computer->priceup(150,200);//上调100多一个参数输出为350
$computer->priceups(100);//一个class中并不存在的方法。输出为[100]
欢迎支付宝打赏
与50位技术专家面对面20年技术见证,附赠技术全景图总结
以上是凯发k8官方网为你收集整理的php中args,php中的重载,即__call($name , $args)的使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: