php - 哪个 PHP 文档对变量类型声明的注释是正确的?

标签 php documentation

<分区>

我搜索了不同的指南和文档,了解如何在文档中正确声明变量类型,但似乎有几种不同的选择。

3 种不同的可能性是:

/** @var integer $sum */
/** @var $sum integer */
/* any of the above but with 1 asterisk */

对于方法参数和变量,在很多不同的文档中都写得很清楚。但是,如果我们谈论的变量不在函数或 View 文件(MVC 设计模式)中怎么办?

在我的工作场所,我们目前使用 2 种不同的软件(NetBeansPhpStorm)。我们注意到它们提供了不同的模板来在文档中声明变量类型。

在 PhpStorm 中:

enter image description here

在 NetBeans 中:

enter image description here

在 StackOverflow 中,我还发现了 2 种不同的用途( highly upvoted answer uses NetBeans option with 1 asteriskin another question it says it's reversed and also uses 2 asterisks )。

由于我们使用的是Yii2框架,所以我们也看看他们是如何写文档注释的。他们正在使用 this format :

/* @var $this yii\web\View */

我最后感兴趣的(不像上面的问题那么重要)是我是否需要在注释中声明完整路径或在注释中声明对象时的用法?有了完整路径,它会像这样:

/** @var yii\BaseYii $object */
echo $object::createObject(1);

完整路径看起来像这样:

use yii\BaseYii;

/** @var BaseYii $object */
echo $object::createObject(1);

我们希望尽可能准确地遵循 PHP 标准。

感谢任何帮助。


我知道这个问题可能太宽泛不清楚你在问什么,我会密切关注它的进展情况。

最佳答案

我一般看到的是什么PSR-5建议:

/** @var int $sum This is a sum. */
$sum = 0;

关于是否声明完整路径,这些都是有效的例子:

namespace \A\B\C;

use yii\BaseYii;

/** @var BaseYii $yii */
$yii = $factory->getApplication();

namespace \A\B\C;

/** @var \yii\BaseYii $yii */
$yii = $factory->getApplication();

namespace \A\B\C;

/** @var \ArrayObject|null $array */
$array = null;

/**
 * @return \DateTime
 */
function now()
{

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="foo")
 */
class Foo

关于php - 哪个 PHP 文档对变量类型声明的注释是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41077458/

相关文章:

PHP 和 MySQL 对数据库中的每一行执行操作

php - 如何导出 PHP 扩展中的所有函数?

php - PDO 事务 : What happens to another script

php - 循环内循环的条件不匹配

php - 如何在 mysql 查询中插入正确的日期

documentation - lua - 文档的元数据

ios - 覆盖方法的 Swift 文档注释?

python - 如何理解在 PyTorch 中创建叶张量?

python - 为 Python 类生成文档

r - 使用 roxygen2 链接到 R 中没有功能的文档页面