2009-12-04 100 views
1

我在一個函數的工作中遇到麻煩,你認爲我下面有什麼是可行的嗎?我沒有得到預期的結果,如果你可以在函數內闡述一些函數,我會對它進行編程。功能在PHP中的功能

感謝

function test1() 

{ 

    global x; 

    $x=123; 

    function test2() 
    { 
    echo $x; 
    } 

    test2(); 

} 
+2

您的預期結果是什麼?這個構造很難理解。你需要什麼? – 2009-12-04 01:38:03

回答

3

它的工作原理,但test2()的範圍是有限的。例如,這可以工作:

[[email protected] ~]$ cat y.php 
<?php 
function test1() 
{ 
     global $x; 
     $x=123; 

     function test2() 
     { 
       global $x; 
       echo $x; 
     } 

     test2(); 
} 

test1(); 
?> 
[[email protected] ~]$ php -f y.php 
123[[email protected] ~]$ 
+0

wallyk謝謝你的見解,現在確實有效。你能否解釋爲什麼你要求x在第二個函數中再次被重新聲明爲全局函數? – chicane 2009-12-04 01:45:56

+0

在相應的功能之外可以看到'$ x'。如果在'test1()'之外設置'$ x = 123',則不需要'test1()'具有'global $ x'。 – wallyk 2009-12-04 01:53:28

0

你就不能把它作爲第一功能(測試1)外的其他功能?我無法爲此畫一個用例。

0

你沒有調用函數test2,所以沒有理由讓它回聲$ x。

另外,你應該在外面構造函數,在這種情況下沒有附加值。