我在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>
答案 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
,用于制作自动文档:
答案 5 :(得分:-1)
这是需要为数组指定的方式:
/**
* @var MyDto[]
*/