Вопрос по циклам while в битриксе

241
06 июня 2017, 01:28

Знаю что у обычного цикла while есть внутри условие остановки: while ($i <= 10)

Объясните пожалуйста как работает цикл из битрикса:

while($arPath = $rsPath->GetNext())
Answer 1

Цикл с предусловием while работает по следующим принципам:

Вычисляется значение логического выражения. Если значение истинно, выполняется тело цикла, в противном случае - переходим на следующий за циклом оператор.

while (логическое_выражение){
    тело цикла;
}
оператор;

При каждой итерация сначала выполняется логическое_выражение($arPath = $rsPath->GetNext()), если оно истинное(true) то выполняется тело цикла. Поскольку в php выполнения происходит справа на лева, то есть сначала выполняется вызов функции GetNext(), объекта $rsPath, после чего значения которое она(GetNext()) вернет, присваивается переменной $arPath, которая и будет проверяться на истинность, то есть будет логическое_выражение. При каждом вызове GetNext() в переменною $arPath будет записан следующий элемент массива и перемещает внутренний указатель массиве результата выборки на следующий элемент, который будет возвращаться при следующим вызов метода GetNext(). Если достигнут конец массива результата выборки метод GetNext() вернет false, который будет присвоен переменной $arPath.В случае если логическое_выражение, в этом случае переменная $arPath, не истинно(false) то тело цикла не выполнетса.

Answer 2

$rsPath->GetNext() возвращает что-то, что присваивается $arPath, потом проверяется значение логическом контексте на условие продолжения цикла.

Answer 3

Условие остановки – когда объект $arPath станет false.

READ ALSO
Запись date() в mysql

Запись date() в mysql

Доброго времени суток!Проблема в следующем - пытаюсь вставить подготовленную дату в базу в поле типа datetime, запрос отрабатывает без ошибок,...

272
Как обратиться к массиву в массиве?

Как обратиться к массиву в массиве?

Я получаю картинку из инпута, вот dd переменной которая получает весь гет и пост:

309
Не срабатывает preg_replace

Не срабатывает preg_replace

При наборе в адресную строку indexphp оно все равно не перенаправляет на index без

253
PHP функции в Javascript [требует правки]

PHP функции в Javascript [требует правки]

Имеет ли смысл реализовать функции PHP в javascript и или лучше пользоваться ajax или PHP?

350