2010-10-10 29 views
3

如果函數依賴於$_SESSION['some_var'],那麼標題註釋掉以清除。你怎麼做呢?就像文字一樣,還是什麼?

甚至@param

回答

4

也許你可以使用@uses記錄超全局

+0

+1謝謝你的好建議 – Mawg 2010-10-10 11:23:33

+0

但是如果fn()返回$ _SESSION變量呢? – Mawg 2010-10-12 05:45:06

+0

在這種情況下,我什麼都不會做 - 只需返回變量的類型(混合,字符串,數組,int,布爾等),而不用擔心變量名或它是否是超全球變量! – 2010-10-12 08:15:04

2

哇,我從來沒有想過這件事。我甚至沒有這樣的事情。我會說在方法詳細說明如

/** 
* Takes the some_var session variable and uses it to solve world hunger 
* @return food 
*/ 

對我來說最有意義。

有@global,但似乎表明創建了一個全局變量。我認爲@參數只應該引用傳遞給方法的方法參數。我知道沒有@note。

+0

+1提起這樣說,這是罰款 - 只是,只要它被提及。否則,潛在用戶不會知道他可能會設置它。 (是的,沒有@note - 在PhpDoc中;我在想DoxyGen,對不起) – Mawg 2010-10-10 11:21:54

+0

但是如果fn()返回$ _SESSION變量呢? – Mawg 2010-10-12 05:45:38

2

@global有兩種用法:表示一個全局變量的定義,並強調全球性的一個方法的使用。這第二個用法適合您的用例。

但是,假設你是引用$ _SESSION [「some_var」]直接在該方法中,從來沒有通過「全球」的文章表示,它可能是的phpDocumentor的@global標籤不會找到它解析方法時。因此,@uses可能是最好的選擇,作爲強調該方法對超全球性依賴性的一種手段。

[1] - http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.global.pkg.html

+0

+1謝謝,我會去@uses – Mawg 2010-10-12 02:26:43

+0

但是如果fn()返回$ _SESSION變量呢? – Mawg 2010-10-12 05:46:15

+1

@return應表示: * @return mixed進一步返回$ _SESSION ['some_var']超全局 – ashnazg 2010-10-12 13:24:06

1

如果你的代碼依賴於一些全球性的,還是外部,存在於爲了工作(例如,它需要安裝sqlite的),你可以使用@use作爲Nev mentioned

無論其...

在一般情況下,我會說這是一個不好的做法,有一個函數填入或使用全局變量(或者使用超全局變量),因爲它打破了功能的封裝,以及創建函數內部和外部代碼之間的強烈依賴性。

如果函數外部的任何代碼應該創建或訪問這些全局變量,則值應該作爲參數傳遞給該函數。

例如,而不是

function doMagic(){ 
    if ($_SESSION['use_black_magic'] == true){ // var coming from the outside 
     $_SESSION['magic_results'] = 'dead chicken'; 
    }else{ 
     $_SESSION['magic_results'] = 'unicorn'; 
    } 
} 

$_SESSION['use_black_magic'] = false; 
doMagic(); 
echo $_SESSION['magic_results']; // (unicorn) variable set within doMagic() 

應該

function doMagic($use_black_magic = true){ 
    if ($use_black_magic == true){ 
     return 'dead chicken'; 
    }else{ 
     return 'unicorn'; 
    } 
} 

$magic_results = doMagic(false); 
echo $magic_results; // unicorn 

這樣,doMagic()不需要知道結果是什麼地方來進行存儲,也沒有在那裏找到參數值。而外部代碼,並不需要知道函數doMagic()正在做$ _SESSION變量。

只要你的代碼增長一點點,維護,共享,調試和擴展這種代碼就變成了一場噩夢......