0

我刚刚使用 php 进入 OOP,几乎偶然发现,如果我将对象类型放在函数定义中的名称之前,那么我正在使用的 IDE 可以解析对象的成员函数和数据成员。

例如:

public function foo(car $car) { }

相对于:

public function foo($car) { }

第一种方法是否合法且首选?

感谢您帮助菜鸟:-)

4

2 回答 2

3

绝对:键入 Hinting。那是 PHP 本身的一个特性,而 IDE 只是为您提供更有用的代码完成功能。试一试并传递错误类型的对象。这将帮助您更早地找到由于传递给方法的错误类型而导致的错误。

class A{}
class B{}
function foo(A $a) { echo "OK";}
foo(new A);
foo(new B);

你也应该看看文档评论(对不起,没有链接)。大多数 IDE 也能够阅读并使用它们来获得额外的代码完成建议。

/**
 * @return MyObject
 */
function bar(){/* ..*/};
bar()->[Strg-Space]
于 2012-07-07T16:56:55.297 回答
1

实际上,最好的做法是提示接口,而不是特定的类名。这可以追溯到面向对象应用程序设计中的接口隔离原则

这意味着,当您注入一个对象时,您应该期望该对象具有特定的方法足迹,然后您可以对其进行调用。这就是多态性的工作原理。

于 2012-07-07T17:15:33.843 回答