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

时间:2012-08-28 12:13:47

标签: 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>

6 个答案:

答案 0 :(得分:17)

  

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

     

数据类型应该是有效的PHP类型(int,string,bool等),a   对象类型的类名,或简称为“混合”。 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();
}

答案 1 :(得分:5)

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

答案 2 :(得分:4)

它是内联类型提示。

e.g。

/* @var bool */
$switch

在这种情况下,它表示$this类型为CategoriesController$data类型为Categories

IDE经常用于类型提示。

答案 3 :(得分:2)

答案 4 :(得分:1)

那是phpdoc,用于制作自动文档:

phpdoc

答案 5 :(得分:-1)

这是需要为数组指定的方式:

/**
 * @var MyDto[]
 */