我有此代码:
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
有什么方法可以在PHPDoc中键入提示,变量“ $ sSomeClass”是一个类名,以便IDE可以看到对该类的引用?
答案 0 :(得分:1)
好吧...
<?php
/**
*
* @var Database $sSomeClass
*/
但是我认为$sSomeClass
不是如图所示的直接分配吗?在那种情况下...可能吗? IDE将无法确定它,可能会在花括号内限制提示的范围。将取决于IDE。
if ($foo == 'bar') {
/**
*
* @var Bar $sSomeClass
*/
$sSomeClass = 'Bar';
} else {
/**
*
* @var Foo $sSomeClass
*/
$sSomeClass = 'Foo';
}
如果要记住方法,我将在编码时添加类似C样式注释的块,然后在之后将其删除。
答案 1 :(得分:0)
您可以在Eclipse中执行此操作(我不了解其他IDE):
/* @var $sSomeClass SomeClass */
$sSomeClass = 'Database';
$pdo = $sSomeClass::getInstance();
这对于局部变量(例如,循环遍历对象数组)非常有用。
/* @var $someClass SomeClass */
foreach($objects as $someClass){
$someClass->getSomething();
}
至少这是我使用它的典型方式。
如果您打算对多个类使用相同的变量,那么一种方法是为它们创建一个接口。也就是说,如果它们是可互换的,然后使用接口而不是类名。关于您到底需要什么的问题尚不清楚。