Топ контрибуторов
loading
loading
Знаете ли Вы, что

В разделе "Статьи" можно найти обучающие статьи по информационным технологиям, а также узнать о новостях сервиса Quizful.

Лента обновлений
ссылка Jul 9 05:01
Комментарий от guenn6797:
Вопрос неоднозначный (
ссылка Jul 8 17:11
Комментарий от IZI1:
Хоть где-то я прав)
ссылка Jul 8 17:10
Комментарий от IZI1:
Интересный вопрос)
ссылка Jul 7 22:58
Комментарий от Zorayr:
это уже не так )
ссылка Jul 7 16:06
Комментарий от arfesdt:
4 вариант в 3 питоне не работает
SyntaxError: invalid sy...
Статистика

Тестов: 153, вопросов: 8597. Пройдено: 463679 / 2265564.

PHP / Короткозамкнутое вычисление.

Автор: lubaev  к списку      

Вопрос
Что будет выведено на экран, в результате выполнения этого сценария?
 
<?php

$array=array(1=>1,2,3,4,);

// 1.
$count=count($array);
while( $count && $array[ $count ] )
{
  echo $array[ $count ];
  $count -= 1;
}

// 2.
$count=count($array);
while( $count & $array[ $count ] )
{
  echo $array[ $count ];
  $count -= 1;
}

?>
Ответ
В результате выполнения сценария, на экран будет выведено:
 
43214321
Notice: Undefined offset: 0

Объяснение:
В первом цикле используется логический оператор &&, который вычисляет второе условие, только тогда, когда первое условие было истинно.

Во втором цикле используется побитовый оператор &, который гарантирует, что все элементы будут вычислены полностью независимо от того, определяется ли истинность или ложность выражения.

Т.о. условие второго цикла будет генерировать ошибку E_NOTICE, при попытке обращения к несуществующему элементу массива.

Если Вам понравился вопрос, проголосуйте за него

Голосов: 16  loading...
lukashov   hugobossod   linhtinh83   VaitirViz   yubrf   deivon   lizalisa   OdessaNA   V1rtu   Kvartir_54   worldmen   isale   SP71   kester   firefox_n   emfs