我现在正在使用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
}
}
答案 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;
}