2015-09-01 146 views
-2

我有這樣的代碼:PHP如何在函數中定義局部變量?

require_once('../config.php'); 
    function ha(){ 
    global $user; /* THIS I NEED TO DEFINE LOCAL ONLY ACCESS FROM THIS FUNCTION */ 
    return $user; 
} 

echo ha(); 

echo $user; /* GLOBAL VARIABLE VALUE */ 

那麼如何將內部函數公頃訪問throught函數的局部變量定義()?所以從回聲哈哈();將價值$用戶存儲在config.php和最後一行echo $用戶需要在echo回顯空...當我在函數中定義靜態$用戶我得到空值...所以如何定義在PHP靜態從config.php讀取的變量值和僅在函數中訪問值的值?

回答

2
function ha(){ 
    global $user; 
    $user2 = 'abc'; //no prefix whatsoever 

    echo $user; //prints global $user 
    echo $user2; //prints local $user2 
} 

如何在變量的PHP靜態值從config.php文件並獲得價值只有在函數read界定?

這是關於variable scope,如果你想在配置文件中定義一個變量並且只能在一個函數內讀取,那麼你當前的方法是不正確的。任何在主範圍內聲明的東西(比如在主範圍中加載的配置文件)都可以從代碼中的幾乎任何地方訪問。如果你不想通過ha()以外的方式訪問變量,那麼他們需要在ha()內定義。在PHP docs

class Private { 

    private $user = 'value'; // declare $user as a private variable 

    function ha() { 

     echo $this->user; 

    } 

} 

$object = new Private(); 

echo $object->user; // returns fatal error 
$object->ha(); // echoes 'value' 

更多的可視性:

0
require_once('../config.php'); 
    function ha(){ 
    $user; /* THIS I NEED TO DEFINE LOCAL ONLY ACCESS FROM THIS FUNCTION */ 
    return $user; 
} 

echo ha(); 

//echo $user; /* (unnecessary) GLOBAL VARIABLE VALUE, same as echoing the result of the function!*/ 

請參閱variable scope.文檔第二echo $user現在是不必要的。在函數中聲明的任何變量如果沒有明確設置爲$global,將不會是全局變量。

相關問題