重构参数未在功能问题中定义

时间:2016-03-08 09:42:47

标签: php parameter-passing optional-parameters

我正在研究一些旧的PHP,而且我还不是PHP顶级专家。

类中的某段代码使用数组参数调用方法:

$saleServers = $this->getSaleServers();
// Getting prices from cache or request
$prices = $this->getProductPrices($saleServers);

然而,该方法没有定义数组参数:

public function getProductPrices($getLicenseLifetime = true) { ... }

我的问题是:

  1. PHP如何处理$saleServers,是否会忽略它?如果是,我想我可以从函数调用中删除它。

  2. 对于$getLicenseLifetime,PHP如何处理$saleServers?它会混淆它们还是将它们分开(即PHP不会将$saleServers分配给$getLicenseLifetime,更正)?

1 个答案:

答案 0 :(得分:1)

$getLicenseLifetime将设置为$saleServers的内容(如果您这样调用),如果省略参数,则为true

PHP是弱类型的,因此您可以使用任何类型的变量调用该函数,并且在函数内部可以检查包含参数的变量的类型,其中包含is_array()等函数.PHP5知道这个概念提示类型,主要用于对象(例如不支持标量),PHP7可以declare argument types