2014-11-08 153 views
-2

是否可以訪問php foreach循環之外的值? 例如:PHP foreach循環訪問外部循環的值

<?php 
    $array=array('a','b','c'); 
    foreach ($array as $value) { 
} 
    echo $value; 
//$value is c. 
?> 

我需要foreach循環外部訪問$值。 這是PHP的限制嗎? 謝謝, 拉維

+1

'$ value'是'c',最後一個,在循環之外。那麼,你的問題是什麼?當你在循環之外時,循環迭代結束,顯示預期的結果。 – Cheery 2014-11-08 03:13:43

+0

我不知道你在做什麼限制,但這是正確的行爲。最後一次迭代它分配了'$'上的'c'的最後一個元素 – Ghost 2014-11-08 03:13:48

+0

指定您的問題更多! – Rizier123 2014-11-08 03:16:37

回答

0

基於您的評論:

我想要做的是能夠訪問A B C foreach循環之外。

你可以在陣列中使用方括號語法訪問值:

echo $array[0]; // outputs "a" 

由於PHP陣列從零開始默認這意味着你可以使用起始於鍵訪問的數組中的值0,例如:$array[0],$array[1]

您可以通過relevant PHP manual page瞭解有關如何訪問數組值的更多信息。

0

這會幫助你:

<?php 
    $array = array('a', 'b', 'c'); 
    foreach ($array as $k => $v) { 

     if($v == "c") 
      $value = $array[$k]; 
    } 

    echo $value; 
    //$value is c. 
?> 

如果你要搜索一個特定的字符,然後這可以幫助你:

<?php 
    $array = array('a', 'b', 'c'); 
    if(in_array("c", $array)) 
     $value = $array[(array_search("c", $array))]; 

    echo $value; 
    //$value is c. 
?> 

A,B,C,可訪問容易與此:

<?php 
    echo $array[0]; //a 
    echo $array[1]; //b 
    echo $array[2]; //c 
?> 
+0

循環之後'$ value'已經是'c'了。你的代碼沒有意義。 – Cheery 2014-11-08 03:15:11

+0

我認爲,因爲我理解他的問題,他想將c添加到foreach循環中的變量 – Rizier123 2014-11-08 03:16:06

+0

好吧,我想要做的就是能夠訪問foreach循環之外的b c。 – user2648781 2014-11-08 03:19:14

0

這是PHP所以我不願意說沒有BU沒有。 如前所述,通過設置一個在範圍外定義的變量是可能的,但foreach具有它自己的範圍自己的局部變量。

你想要它的方式,試圖訪問一個在foreach循環中定義的變量,在這種情況下,外部的$值會導致問題。用於存儲該變量的內存中的位置再次釋放,可能已被其他內容覆蓋。