PHP对象及其功能

时间:2010-10-11 13:00:58

标签: php type-safety

我现在正在使用PHP 5,我很乐意在PHP 5中使用OOP。我遇到了一个问题。我里面的课程很少,功能很少。很少有函数需要传递参数,这些参数是我自己写的那些类的对象。我注意到,参数不是严格打字的。有没有办法让它严格打字,以便在编译时我可以使用Intellisense?

示例:

class Test
{
   public $IsTested;

   public function Testify($test)
   {
      //I can access like $test->$IsTested but this is what not IDE getting it
      //I would love to type $test-> only and IDE will list me available options including $IsTested
   }
}

3 个答案:

答案 0 :(得分:3)

好吧,你可以用type hinting做你想做的事情:

public function Testify(Test $test) {

}

要么是,要么是docblock:

/**
 * @param Test $test The test to run
 */

这取决于IDE,以及它如何获取类型提示......我知道NetBeans足够聪明,可以选择类型提示Testify(Test $test)并让你从那里开始,但是其他一些IDE不是那么聪明......所以它真的取决于你的IDE哪个答案会让你自动完成......

答案 1 :(得分:1)

我打算给一个简单的“号”回答,然后在PHP文档中找到Type Hinting部分。

我想这就是答案。

<?php
class Test
{
   public $IsTested;

   public function Testify(Test $test)
   {
      // Testify can now only be called with an object of type Test
   }
}

我不确定Intellisense是否知道类型提示。这一切都取决于。

答案 2 :(得分:1)

$test不是类变量。 也许你想要$this

$this->IsTested;

OR

public function Testify(Test $test)
{
   $test->IsTested;
}