PHPDoc-静态方法调用的typehint

时间:2018-10-18 21:10:03

标签: php phpdoc

我有此代码:

$sSomeClass = 'Database';

$pdo = $sSomeClass::getInstance();

有什么方法可以在PHPDoc中键入提示,变量“ $ sSomeClass”是一个类名,以便IDE可以看到对该类的引用?

2 个答案:

答案 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();
  }

至少这是我使用它的典型方式。

如果您打算对多个类使用相同的变量,那么一种方法是为它们创建一个接口。也就是说,如果它们是可互换的,然后使用接口而不是类名。关于您到底需要什么的问题尚不清楚。