【发布时间】:2018-09-14 04:06:42
【问题描述】:
我在调试别人的代码,这实际上给了我代码的灵感,让我可以写出一个不错的插件。
问题是现在我的插件工作正常,但我不太明白为什么。
我试图了解将命名空间作为参数添加到函数的好处和后果。
在我的代码中,我正在分析这部分:
public function check_shipping(Order $order, $option) {}
Order 是我在代码中导入的命名空间:
use Store\Model\Order;
而$order 和$option 实际上是两个对象,它们是我函数中的参数。
请注意,我正在使用 ExpressionEngine 并使用来自第三方插件的特定挂钩。
本质上,我的问题是:我的命名空间和函数中的两个参数之间有什么关系?
前两个参数是否有关系,因为它们之间没有逗号?
【问题讨论】:
-
当然 Order 是一个位于命名空间中的类,在示例中表示 $order 应作为传递的类型。
-
我认为(如果我理解你的话)第一个“参数”实际上是一个类型提示,你是在告诉 PHP 解释器传递给这个函数的第一个参数必须是 Order 类型
-
参数的
Type。你应该学习一些强类型语言,比如 Java,你就会知道Type到底是什么。 -
我认为没有必要为了理解 PHP 类型提示而学习 Java...
-
我同意...学习一门语言只是为了掌握类型是什么,非常繁重,只需阅读类型...大约需要 2 分钟
标签: php oop parameters namespaces