在PHP评论中@var的含义是什么?

eri*_*ric 14 php

我在php评论中看到这个(@var)很多,并且不知道它意味着什么.请告诉我.

// example.php (taken from yii framework application code)

<?php
/* @var $this CategoriesController */
/* @var $data Categories */
?>

<div class="view">

    <b><?php echo CHtml::encode($data->getAttributeLabel('idCategory')); ?>:</b>
    <?php echo CHtml::link(CHtml::encode($data->idCategory), array('view', 'id'=>$data->idCategory)); ?>
    <br />
</div>
Run Code Online (Sandbox Code Playgroud)

Cos*_*inO 18

您可以使用@var标记来记录类变量的数据类型.

数据类型应该是有效的PHP类型(int,string,bool等),对象类型的类名,或者只是"混合".phpDocumentor将显示未修改的可选描述,如果数据类型不存在,则默认为"mixed"

http://www.phpdoc.org/docs/latest/references/phpdoc/tags/var.html

使用@var标记,可以记录类属性的类型和功能.如果提供它必须包含一个类型来表明预期的内容; 另一方面,描述是可选的,但在复杂结构的情况下,例如关联数组,则推荐使用.

@var标记可以有多行描述,不需要显式分隔.

在记录每个属性使用此标记时,建议使用此方法.

在PHPDoc中,每个属性不得出现此标记,并且仅限于属性类型的结构元素.

例:

class DemoVar
{
   /**
    * Summary
    *
    * @var object Description
    */
   protected $varWithDescriptions;

   /**
    * @var \DemoVar $instance The class instance.
    */
   protected static $instance;

   /**
    * Summary for varWithWrongType
    *
    * @var boolean The varWithWrongType. Boolean will be put in the type.
    */
   protected $varWithWrongType = array();
}
Run Code Online (Sandbox Code Playgroud)


Lus*_*ian 5

它们是PHPdoc注释,通常用于IDE类型描述/代码完成(有时也用于文档生成,但在这种情况下不会).它们与应用程序本身无关,可以在不发生意外的情况下删除.


Geo*_*ith 5

它位于内联类型提示中。

例如

/* @var bool */
$switch
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它意味着$this是类型CategoriesController并且$data是类型Categories

通常由 IDE 用于类型提示。