【问题标题】:Refactoring parameter not defined in function issue函数问题中未定义重构参数
【发布时间】:2016-06-22 04:36:10
【问题描述】:

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

类中的某些代码调用带有数组参数的方法:

$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,对吗)?

【问题讨论】:

  • @syck 我做了一个小测试,证实了你所说的。如果您创建答案,我会批准它。谢谢。
  • 完成并在途中自学了一点:)

标签: php parameter-passing optional-parameters


【解决方案1】:

$getLicenseLifetime 将设置为$saleServers 的内容,如果你这样调用它,将设置为true,如果你省略参数。

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

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多