Влияет ли та же самая переменная цикла во внутреннем цикле foreach на PHP? - PullRequest
0 голосов
/ 04 января 2019

Следующий код работает, но я хотел бы знать, является ли хорошей практикой иметь одинаковую переменную цикла как во внешнем, так и во внутреннем циклах?Может ли это иметь серьезные последствия?Является ли следующая ошибка кода?

function funtion_name($var1, $var2) {
    foreach (some_array as $var3 ) {
        if ($var3 == $var2) {

            // do something.

            // Start the inner loop!
            foreach (some_array as $var3 ) {
                if ($var3 == $var2) {
                    return false;
                }
            }
        }
    }
    return true;
}

1 Ответ

0 голосов
/ 07 января 2019

Прежде всего, использование одной и той же переменной в цикле не является хорошей практикой, даже если она присваивается каждый раз. В PHP переменная ячейка памяти восстанавливается каждый раз, поэтому без вреда для нее использовать одноименную переменную. В вашем коде 2-й цикл будет работать только тогда, когда выполнено первое условие if, поэтому оно зависит от передачи параметров функции.

<?php

function fun($var1,$var2)
{
    $arr1=array(1,2,3,4);
    $arr2=array(10,11,12,13);
    foreach($arr1 as $var3)
    {
         if ($var3 == $var2) {
            echo $var3;
            foreach ($arr2 as $var3 ) {
                echo 'inner';
                echo $var3;
                if ($var3 == $var2) {

                }
            }
         }
    }
}

fun(10,1); // here 2nd loop will work as $var2 will satisfy the first condition.  
Output : 1inner10inner11inner12inner13


fun(10,11); // here 2nd loop will no work as $var2 will not satisfy the first condition. 
Output : '' //no output

Надеюсь, я смогу правильно объяснить вам ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...