2013-07-25 33 views
0

實施例PHP:如何從另一個函數的函數中獲取變量?

function a(){ 
    $num = 1; 

    function b(){ 
     echo $num; // how to get $num value? 
    } 
} 

在這種情況下global不工作,因爲$num不是全局變量。

+0

請問你爲什麼決定來定義嵌套函數? –

+1

你不行。 PHP只有兩個範圍。當前函數範圍和全局範圍。你不能從中間範圍訪問某些東西,除非你將它作爲參數傳遞。 –

回答

-3

您可以使用S_SESSION來獲取變量?

function a(){ 
    $_SESSION['num'] = 1; 

    function b(){ 
     echo $_SESSION['num']; 
    } 
} 

不確定嵌套函數是順便去btw的方式。

+0

我不推薦使用這個會話。如果你繼續這樣做,它會使SESSION var變得非常大,而完全可以接受(甚至可能是beter)方法。 – Martijn

+0

這是真的,但代碼示例非常小,這是我唯一發生的事情。 – Morsok

2
function a() { 
    $num = 1; 
    function b($num) { 
     echo $num; 
    }; 
    b($num); 
} 
a(); 
+0

第一soultion,符合該問題... *豎起大拇指* –

+0

函數內部功能。這可能不是最好的主意。我將不得不獲得關於此的一些信息,即時通訊不知道這是一個「最佳實踐」 編輯:我發現這一點:http://stackoverflow.com/questions/415969/what-are-php-嵌套函數換 – Martijn

+0

如果計劃是始終調用b()從內的(),匿名函數是一個精細的解決方案。 –

相關問題