Поиск…


Альтернативный синтаксис для структур управления

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 конструкции, см Коммутационных Сюрпризов



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow