PHP
Контрольные структуры
Поиск…
Альтернативный синтаксис для структур управления
PHP предоставляет альтернативный синтаксис для некоторых структур управления: if
, while
, for
, foreach
и switch
.
По сравнению с обычного синтаксиса, разница в том, что открытие скобка заменяется на двоеточие ( :
) и закрывающая скобка заменяется endif;
, в endwhile;
, endfor;
, endforeach;
, или endswitch;
, соответственно. Для отдельных примеров см. Тему альтернативного синтаксиса для структур управления .
if ($a == 42):
echo "The answer to life, the universe and everything is 42.";
endif;
Несколько операторов elseif
с использованием короткого синтаксиса:
if ($a == 5):
echo "a equals 5";
elseif ($a == 6):
echo "a equals 6";
else:
echo "a is neither 5 nor 6";
endif;
Руководство PHP - Структуры управления - Альтернативный синтаксис
в то время как
while
цикл выполняет итерацию через блок кода, если указанное условие истинно.
$i = 1;
while ($i < 10) {
echo $i;
$i++;
}
Выход: 123456789
Подробную информацию см. В разделе «Циклы» .
делать пока
цикл do-while
while сначала выполняет блок кода один раз, в каждом случае, затем выполняет итерацию через этот блок кода, пока указанное условие является истинным.
$i = 0;
do {
$i++;
echo $i;
} while ($i < 10);
Output: `12345678910`
Подробную информацию см. В разделе «Циклы» .
идти к
Оператор goto
позволяет перейти в другой раздел программы. Он доступен с PHP 5.3.
Инструкция goto - это goto, за которой следует желаемая целевая метка: goto MyLabel;
,
Цель прыжка указана меткой, за которой следует двоеточие: MyLabel:
В этом примере будет напечатан Hello World!
:
<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
MyLabel:
echo 'Hello World!';
?>
объявлять
declare
используется для установки директивы выполнения для блока кода.
Признаются следующие директивы:
Например, установите галочки в 1:
declare(ticks=1);
Чтобы включить режим строгого типа, оператор declare
используется с объявлением strict_types
:
declare(strict_types=1);
если еще
Оператор if
в приведенном выше примере позволяет выполнить фрагмент кода, когда выполняется условие. Если вы хотите выполнить фрагмент кода, когда условие не выполняется, вы расширяете if
с помощью else
.
if ($a > $b) {
echo "a is greater than b";
} else {
echo "a is NOT greater than b";
}
Руководство PHP - Структуры управления - Else
Тернарный оператор как сокращенный синтаксис if-else
Тернарный оператор оценивает что-то, основанное на истинном состоянии или нет. Это оператор сравнения и часто используется для выражения простого условия if-else в более короткой форме. Это позволяет быстро протестировать состояние и часто заменяет многострочный оператор if, делая ваш код более компактным.
Это пример сверху, используя тройное выражение и переменные значения: $a=1; $b=2;
echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";
Выходы: a is NOT greater than b
.
включать & требовать
требовать
require
аналогичен include
, за исключением того, что он приведет к фатальной E_COMPILE_ERROR
уровня E_COMPILE_ERROR
при сбое. Когда require
не выполняется, он остановит скрипт. Когда include
завершается с ошибкой, оно не остановит скрипт и только испустит E_WARNING
.
require 'file.php';
Руководство PHP - Структуры управления - Требовать
включают
Оператор include
включает и оценивает файл.
./variables.php
$a = 'Hello World!';
. / Main.php`
include 'variables.php';
echo $a;
// Output: `Hello World!`
Будьте осторожны с этим подходом, поскольку он считается запахом кода , потому что включенный файл изменяет количество и содержимое определенных переменных в данной области.
Вы также можете include
файл, который возвращает значение. Это чрезвычайно полезно для обработки конфигурационных массивов:
configuration.php
<?php
return [
'dbname' => 'my db',
'user' => 'admin',
'pass' => 'password',
];
main.php
<?php
$config = include 'configuration.php';
Такой подход не позволит включенному файлу загрязнять текущую область видимости измененными или добавленными переменными.
Руководство PHP - Структуры управления - Включите
include & require также может использоваться для назначения значений переменной при возврате чего-либо по файлу.
Пример :
include1.php файл:
<?php
$a = "This is to be returned";
return $a;
?>
Файл index.php:
$value = include 'include1.php';
// Here, $value = "This is to be returned"
вернуть
Оператор return
возвращает программный элемент управления вызывающей функции.
Когда return
вызывается из функции, выполнение текущей функции завершается.
function returnEndsFunctions()
{
echo 'This is executed';
return;
echo 'This is not executed.';
}
Когда вы запустите returnEndsFunctions();
вы получите результат. This is executed
;
Когда return
вызывается из функции с аргументом и аргументом, выполнение текущей функции завершается, и значение аргумента будет возвращено вызывающей функции.
за
for
циклов обычно используются, когда у вас есть фрагмент кода, который вы хотите повторить определенное количество раз.
for ($i = 1; $i < 10; $i++) {
echo $i;
}
Выходы: 123456789
Подробную информацию см. В разделе «Циклы» .
для каждого
foreach
- это конструкция, которая позволяет легко итеративно перебирать массивы и объекты.
$array = [1, 2, 3];
foreach ($array as $value) {
echo $value;
}
Выходы: 123
.
Чтобы использовать цикл foreach
с объектом, он должен реализовать интерфейс Iterator
.
Когда вы перебираете ассоциативные массивы:
$array = ['color'=>'red'];
foreach($array as $key => $value){
echo $key . ': ' . $value;
}
Выходы: color: red
Подробную информацию см. В разделе «Циклы» .
если elseif else
ElseIf
elseif
объединяет if
и else
. Оператор if
расширяется для выполнения другого оператора в случае, if
оригинал, if
выражение не выполнено. Но альтернативное выражение выполняется только тогда, когда выполняется условное выражение elseif
.
В следующем коде отображается либо «a больше b», «a равно b», либо «a меньше b»:
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
Несколько указаний elseif
Вы можете использовать несколько инструкций elseif в одном и том же операторе if:
if ($a == 1) {
echo "a is One";
} elseif ($a == 2) {
echo "a is Two";
} elseif ($a == 3) {
echo "a is Three";
} else {
echo "a is not One, not Two nor Three";
}
если
Конструкция if допускает условное выполнение фрагментов кода.
if ($a > $b) {
echo "a is bigger than b";
}
Руководство PHP - Структуры управления - если
переключатель
Структура switch
выполняет ту же функцию, что и ряд операторов if
, но может выполнять работу за меньшее количество строк кода. Проверяемое значение, определенное в инструкции switch
, сравнивается для равенства со значениями в каждом из операторов case
до тех пор, пока не будет найдено совпадение и не будет выполнен код в этом блоке. Если соответствующий оператор case
не найден, код в блоке по default
выполняется, если он существует.
Каждый блок кода в case
или инструкции по default
должен заканчиваться оператором break
. Это останавливает выполнение структуры switch
и продолжает выполнение кода сразу же после этого. Если оператор break
опущен, выполняется код следующего case
, даже если совпадение отсутствует . Это может привести к неожиданному выполнению кода, если оператор break
забыт, но также может быть полезен, когда несколько операторов case
должны использовать один и тот же код.
switch ($colour) {
case "red":
echo "the colour is red";
break;
case "green":
case "blue":
echo "the colour is green or blue";
break;
case "yellow":
echo "the colour is yellow";
// note missing break, the next block will also be executed
case "black":
echo "the colour is black";
break;
default:
echo "the colour is something else";
break;
}
В дополнение к тестированию фиксированных значений конструкцию можно также принуждать к тестированию динамических операторов, предоставляя логическое значение инструкции switch
и любое выражение для оператора case
. Имейте в виду, что первое совпадающее значение используется, поэтому следующий код будет выводить «более 100»:
$i = 1048;
switch (true) {
case ($i > 0):
echo "more than 0";
break;
case ($i > 100):
echo "more than 100";
break;
case ($i > 1000):
echo "more than 1000";
break;
}
Для возможных проблем с рыхлыми , набрав в то время как с помощью switch
конструкции, см Коммутационных Сюрпризов