2009-12-31 43 views
5

我有這個構造函數需要一個可選的參數。這個問題的主要問題是可用性。使用我的框架的開發人員會立即感到頭疼,因爲他不知道他是否可以提供論證,什麼樣的論證,或者他根本不能。結論:它很糟糕。但是PHPDoc的可以一點點幫助,如果有人有一個合理的IDE像安裝了NetBeans;)如何在PHPDoc中標記參數是可選的?

所以:

class ChildClass extends ParentClass { 
    public function __construct() { 
    $tplFile = func_get_arg(0); 
    if (!isset($tpl)) { 
     $tpl = 'index'; 
    } 
    parent::__construct($tpl); 
    } 
} 

我怎麼能使用PHPDoc的位置,表明可以提供一個可選的[$第三方物流]論據?

回答

6

聲明一個參數,並給它一個預設:

public function __construct($my_argument = 0) 

我的IDE(PHPED,這是PHPDoc的敏感)正確地解釋它。 PHPDoc的應該也是如此,並把參數到括號:

show ([$my_argument]) 
+1

通過在代碼本身中聲明一個可選的arg,phpDoc和原始代碼的讀者都可以解釋該方法可以在沒有參數的情況下使用。 不管你是否這樣做,只要在docblock中使用@param標籤就會給phpDoc寫點東西,而且我知道Eclipse PDT至少會選擇它並在彈出關於方法的文檔時顯示它盤旋。 – ashnazg 2009-12-31 15:46:59

+0

有關如何在函數簽名中未明確指定參數時使用@param的更多詳細信息,請參見[1]中的底部示例....只需將其想象爲「@param mixed $ v, ...「線正在使用。 [1] - http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html – ashnazg 2009-12-31 15:47:52