函数问题中未定义重构参数

Refactoring parameter not defined in function issue

我正在研究一些旧的 PHP,我还不是 PHP 顶尖专家(目前)。

class 中的一些代码调用了一个带有数组参数的方法:

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

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

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

我的问题是:

  1. PHP怎么处理$saleServers,是不是要忽略了?如果是,我想我可以将它从函数调用中删除。

  2. 关于 $saleServers,PHP 将如何处理 $getLicenseLifetime?它是将它们混合起来还是将它们分开(即 PHP 不会将 $saleServers 分配给 $getLicenseLifetime,正确)?

如果这样调用,

$getLicenseLifetime 将设置为 $saleServers 的内容,如果省略参数,则将设置为 true

PHP 是弱类型的,因此您可以使用任何类型的变量调用该函数,并且在函数内部您可以使用 is_array() etc. PHP5 knows the concept of type hinting, which mainly works on objects (does not support scalars for example) and with PHP7 you can declare argument types 等函数检查保存参数的变量类型.