2012-08-28 100 views
9

我在php的評論中看到了這個(@var)很多,不知道它的含義。請告訴。@var在php中的含義是什麼

// 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> 
+4

[http://www.phpdoc.org/docs/latest/for-users/tags/var.html](http://www.phpdoc.org/ docs/latest/for-users/tags/var.html) – Hawili

回答

13

您可以使用@var標記來記錄類變量的數據類型。

數據類型應該是一個有效的PHP類型(int,string,bool等),一個 類對象的類名,或者簡單地「混合」。 phpDocumentor的 將顯示可選說明未改性的,缺省爲 「混合」,如果數據類型爲不存在

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(); 
} 
+0

鏈接已停用。 –

+0

更改鏈接並添加新的報價 – CosminO

1

也就是說phpdoc,使自動化的文檔:

phpdoc

5

他們是PHPDoc的意見和一般用於IDE-typehinting /代碼完成(有時也文檔 - 代,但在這種情況下不)。它們與應用程序本身無關,可以毫無例外地被移除。

+1

有沒有一個PHP IDE ?????聖sh *告訴告訴! (使用Mac OSX) – sean

+0

有很多...imho最好的一個是phpStorm(win/mac/linux),但也有netbeans和eclipse等 – Lusitanian

+0

你已經讓我的早晨,我的朋友。我會檢查他們。 – sean

2

它是一個內聯類型提示。

例如

/* @var bool */ 
$switch 

在這種情況下,它意味着$thisCategoriesController類型的,並且是$dataCategories

常所用的IDE爲類型提示的。