PHPDoc - 类型提示变量以查看静态方法

PHPDoc - typehint a variable to see static methods

我有这个代码:

$sSomeClass = 'Database';

$pdo = $sSomeClass::getInstance();

有什么方法可以在 PHPDoc 中输入提示,变量“$sSomeClass”是一个 class 名称,所以 IDE 可以看到对那个 class 的引用?

嗯...

<?php
/**
*
* @var Database $sSomeClass
*/

但我假设 $sSomeClass 不是如图所示的直接分配?那样的话……可能吧? IDE 无法确定它,也许可以确定花括号内提示的范围。将取决于 IDE.

if ($foo == 'bar') {
  /**
    *
    * @var Bar $sSomeClass
    */
    $sSomeClass = 'Bar';
} else {
  /**
    *
    * @var Foo $sSomeClass
    */
    $sSomeClass = 'Foo';
}

如果难以记住方法,我会在编码时添加类似 C 风格注释的块,然后简单地删除它。

在 Eclipse 中你可以这样做(我不知道其他 IDE 的):

  /* @var $sSomeClass SomeClass */
  $sSomeClass = 'Database';

  $pdo = $sSomeClass::getInstance();

这对局部变量非常有效,例如循环对象数组。

 /* @var $someClass SomeClass */
  foreach($objects as $someClass){
      $someClass->getSomething();
  }

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

如果您计划对多个 class 使用相同的变量,一种方法是为它们创建一个接口。也就是说,如果它们是可互换的,然后使用接口而不是 class 名称。问题中不清楚你到底需要什么。