2010-09-08 1 views
0
foreach ($arr1 as $v){ 
... 
} 

foreach ($arr2 as $v){ 
... 
} 

тогда два $v будут иметь странное поведение. Если я заменил второй $v на $v2, тогда все будет в порядке.странное поведение в PHP temp var

+9

define: странное поведение – Iznogood

+0

Вы получите странное поведение, если первый цикл использовал ссылку, например. 'foreach ($ arr1 as & $ v) {}' - последний элемент в '$ arr2' будет привязан к каждому элементу' $ arr1' по очереди. –

+4

Его довольно удивительно, как столь плохо сформулированный вопрос получает так много * вероятно хороших * ответов. – Frankie

ответ

1

Если вы не вложили петли, попробуйте unset() ting $v сразу после первого цикла foreach и перед вторым циклом foreach.

0

Любое «странное поведение», что это происходит, вероятно, потому, что вы вложенность петли Foreach, так что вы будут необходимо изменить название уага второй открытой $v как первый $v будет доступны в сфере действия второй (вложенный) foreach.

0

Если у вас есть что-то вроде

foreach($arr1 as $v 
{ 
    foreach($arr2 as $v) 
    { 
     // Code 
    } 
} 

я мог видеть проблему. В противном случае нам нужно лучшее определение «странного поведения».

-1

В случае

foreach ($arr1 as $v) { 
    // some code ... 
    foreach ($arr2 as $v) { 
     // more code 
    } 
    // here you might see something unexpected, namely the last $v of the inner loop, not the current $v of the outer loop 
} 

Однако, если у вас есть два foreach петли один за другим, не вложен, я не могу себе представить, что странное поведение, которое вы видите.

+1

Не копируйте ответы других людей. –

+0

@Josh K: Я не вижу ничего скопированного ... – NikiC

+0

@nikic: Это очень ** очень похоже на мой ответ. –

Смежные вопросы