gpt4 book ai didi

php - 命名空间作为php函数中的参数

转载 作者:可可西里 更新时间:2023-11-01 00:39:24 28 4
gpt4 key购买 nike

我在调试别人的代码,这实际上给了我代码的灵感,让我写了一个不错的插件。

问题是现在我的插件工作正常,但我不太明白为什么。

我想了解将 namespace 作为参数添加到函数的好处和后果。

在我的代码中,我正在分析这部分:

public function check_shipping(Order $order, $option) {}

其中 Order 是我在代码中导入的命名空间:

use Store\Model\Order;

$order$option 实际上是两个对象,它们是我函数中的参数。

众所周知,我正在使用 ExpressionEngine 并使用来自第三方插件的特定 Hook 。

本质上,我的问题是:我的命名空间和函数中的两个参数之间的关系是什么?

前两个参数之间没有逗号,是否有关系?

最佳答案

鉴于此方法:
public function check_shipping(Order $order, $option) {}

我们看到 Order$order 参数的类型提示。 Order$order 不是两个不同的参数。 Order 定义了 $order 的类型。

这是 PHP Documentation on defining function argument types .您会注意到 PHP 的功能因您运行的 PHP 版本而异。 PHP 7 引入了标量类型提示,例如 stringint 等,但您可以从 PHP 5.0 开始对对象进行类型提示,从 5.1 开始可以对数组进行类型提示。

$option 没有类型提示,但您可以在 , 之后添加一个,具体取决于它的类型和您的 PHP 版本。

定义类型提示时,您可以引用完整的命名空间:
公共(public)函数 check_shipping(\Store\Model\Order $order, $option) {}

这样您就不必使用 use 声明导入命名空间。 (并不是说那是你在任何特定情况下想要做的。我只是说你可以那样做)

关于php - 命名空间作为php函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49653646/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com