Головна » Файли » PHP » PHP

Оператор <<?>>
26.05.2012, 19:47

Использование трехкомпонентного оператора? позволяет избежать многословности инструкций if и else. Необычность этого оператора заключается в том, что он использует не два, как большинство других операторов, а три операнда. В других статьях уже состоялось краткое знакомство с этим оператором при выяснении разницы между print и echo, где он приводился в качестве примера оператора, который хорошо работает с print, но не работает с echo.

Использование трехкомпонентного оператора? позволяет избежать многословности инструкций if и else. Необычность этого оператора заключается в том, что он использует не два, как большинство других операторов, а три операнда. В главе 3 уже состоялось краткое знакомство с этим оператором при выяснении разницы между print и echo, где он приводился в качестве примера оператора, который хорошо работает с print, но не работает с echo.

?php

echo $fuel <= 1 ? "Требуется дозаправка" : "Топлива еще достаточно" : "Топлива еще достаточно";

/>

Если топлива остается всего 1 галлон  или меньше (иными словами, переменная $fuel имеет значение, равное единице или меньше нее), этот оператор возвращает предыдущей команде echo строку «Требуется дозаправка». В противном случае он возвращает строку «Топлива еще достаточно». Значение, возвращаемое оператором?, можно также присвоить какой-нибудь переменной. 

Прииер 4.27. Присваивание условного результата оператора "?" переиенной

?php 

$echo $fuel <= "Требуется дозаправка" : "Топлива еще достаточно";

?>

В этом примере переменной Senough будет присвоено значение TRUE только в том случае, если в баке более 1 галлона топлива, в противном случае ей будет присвоено значение FALSE. Если вы считаете синтаксис оператора? слишком запутанным, можете вместо него воспользоваться инструкцией if, но о нем все равно нужно знать, поскольку он может встретиться в программном коде, созданном другим программистом. Чтение кода, в котором используется этот оператор, может быть сильно затруднено из-за частого использования в нескольких местах одной и той же переменной. Например, весьма популярен код такого вида:

$saved = $saved >= $new ? $saved : $new;

Понять, что он делает, можно только после тщательного разбора:

$saved = // Присваивание значения переменной $saved

$saved>= $new // Сравнение $saved и $new

?    // Если сравнение выдает истинный результат...

$saved  // ... tq ghbcdftdftncz ntreott pyfxtybt ;іфмув

Ж   // Если сравнение выдает ложный результат ...

$new;   /// ... ей присваивается значение переменой $new

Это весьма компактный способ отслеживания самого большого значения, которое может встретиться в процессе выполнения программы. Самое большое значение содержится в переменной $saved и при поступлении нового значения сравнивается со значением переменной $new. Программисты, освоившие оператор?, считают, что для таких коротких сравнений его применять удобнее, чем инструкции if. Если этот оператор не используется для создания компактного кода, то он обычно применяется для принятия решений, умещающихся на одной строке, например для проверки того, установлено ли значение переменой, перед передачей

ее функции.


 

Категорія: PHP | Додав: [UA]Admin
Переглядів: 697 | Завантажень: 0 | Коментарі: 1
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]

Як би ви хотіли назвати нашого котика?
Всего ответов: 45
Реклама на сайті Чорнобай - 063-878-77-71 Ковка Киев
Найближчі населені пункти до селища міського типу    Чорнобай: Ви власник цих сайтів, пропоную співпрацю! м. Золотоноша20 км
смт. Оржиця29 км
м. Черкаси32 км
смт. Драбів34 км
смт. Новооржицьке48 км
м. Гребінка50 км
с. Великі Липняги56 км
м. Сміла59 км
м. Лубни61 км
Вівторок
07.07.2020
17:39

[ Управління профілем ]
Онлайн радио

OnLine
Онлайн всього: 1
Гостей: 1
Користувачів: 0

Користувачів онлайн:
На сайті Чорнобай були:

Ремонт компютерів настройка та устаноака систем, програм та антивірусів, створення рефератів, дипломних, курсових, робіт.Банери та дизайн. Створення сайтів Черкаси - Чорнобай тел. - 063 - 878 - 77 - 71 - 096 - 180 - 12 - 12