Справочник по PHP : Синтаксис языка и операторы : Выражения
смотрим также
Материал из Справочник Web-языков
Содержание |
if
Позволяет организовывать выполнение фрагментов кода по условию.
Синтаксис :
if (выражение) statement
Может иметь неограниченную степень вложенности в другие IF.
if($a > $b) print "$a больше $b";
<?php if($a > $b) { echo "$a больше $b"; $b=$a; } ?>
else
Расширяет возможности IF по части обработки вариантов выражения, когда оно равно FALSE.
Выражение ELSE выполняется только если IF равно FALSE.
if($a>$b) { echo "a больше b"; } else { echo "a не больше b"; }
elseif
Является комбинацией IF и ELSE. Позволяет выполнить выражение, если значение IF равно FALSE, но в отличии от ELSE оно выполниться, если выражение ELSEIF равно TRUE.
if ($a > $b) { echo "a больше b"; } elseif ($a == $b) { echo "a равно b"; } else { echo "a меньше b"; }
if ... endif
Один из возможных вариантов группирования операторов с оператором IF.
Удобно при внедрении больших блоков HTML-кода внутрь оператора IF.
if ($a == 1): echo "a равно 1"; elseif ($a == 2): echo "a равно 2"; else: echo "а не равно 1 и 2"; endif;
<?php if ($a==5):?>A=5<?php endif;?>
Блок HTML-кода A=5 будет виден, если выполнется условие $a==5
while
Простейший тип цикла в PHP. Заставляет PHP выполнять вложенные операторы до тех пор, пока условие равно TRUE. Если условие равно FALSE с самого начала, то цикл не выполнится не разу.
Синтаксис:
WHILE(условие)выражения
Можно сгруппировать несколько операторов внутри фигурных скобок или использовать альтернативный синтаксис : WHILE(условие)выражения... ENDWHILE;
<?php $a=1; while ($a<?php $a = 1; while($a
- Эти два примера выводят номера с 1 до 5.do_while
Цикл, аналогичный WHILE, но значение логического выражения проверяется не до, а после окончания итерации. Основное отличие - то что цикл хоть один раз но выполнится.
<?php $a = 1; do { echo $a; } while ($a > 1); ?>Можно прекратить использовать блок операторов в середине путем внедрения оператора BREAK в цикл DO..WHILE(0) :
<?php do { if ($a == 5) { echo "A равно 5" break; } $a *= $b; if ($afor
Наиболее мощный цикл в PHP.
Синтаксис:
FOR (условие1; условие2; условие3)выражения
- условие1 - Безусловно выполняется (вычисляется) в начале цикла
(условие2 - Проверяется в начале каждой итерации. Если оно равно TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно равно FALSE, то цикл заканчивается. (условие3 - Выполняется (вычисляется) в конце каждой итерации.
Каждое из этих условий может быть пустым.
Пример1:
for ($a = 1; $aПример 2:
for ($a = 1;;$a++) { if ($a > 5) { break; } echo $a; }Пример 3:
$a = 1; for (;;) { if ($a > 5) { break; } print $a; $a++; }Пример 4:
for ($a = 1; $aPHP поддерживает альтернативный синтаксис FOR:
FOR(усл1; уcл2; усл3;):операторы;...;ENDFOR;break
Прерывает выполнение текущего цикла.
Пример:
$a = 0; while ($acontinue
Переходит на начало ближайшего цикла.
<?php while (list($key,$value) = each($arr)) { if ($key % 2) { continue; } do_something_odd ($value); } ?>switch
Сравнивает переменную или выражение с различными значениями и выполняет различные фрагменты кода в зависимости от того, чему будет равно значение выражения.
<?php switch ($a) { case 0: echo "A равно 0"; break; case 1: echo "A равно 1"; break; case 2: echo "A равно 2"; break; default: echo "A не равно 0, 1, 2"; } ?>
- default - соответствует всем значениям, которые не удовлетворяют другим CASE. CASE - могут быть любого скалярного типа, т.е. целые числа или числа с плавающей запятой и строки.
require
Заменяет себя содержимым указанного файла.
Пример:
require("include.inc");
Но его нельзя поместить внутрь цикла и ожидать, что он включит содержимое другого файла несколько раз в процессе каждой итерации. Для этого есть INCLUDE.
include
Вставляет и выполняет содержимое указанного файла.
<?php $files = array ("first.inc", "second.inc", "third.inc"); for ($a = 0; $aТак как INCLUDE() это специальный оператор, требуется заключать его в фигурные скобки при использовании внутри условного оператора.
<?php if ($afunction
Объявление функции.
Внутри функции может быть любой верный код PHP, даже объявление другой функции или класса. Функции должны быть объявлены перед тем, как на них ссылаться.
<?php function foo ($arg_1, $arg_2, ..., $arg_n) { echo "Пример функции."; return $retvalue; } ?>Возвращение результатов:
- Результаты возвращаются через необязательный оператор return.
- Возвращаемый результат может быть любого типа, включая списки и объекты.
<?php function my_sqrt ($num) { return $num * $num; } echo my_sqrt(4); //выведет 16 ?>
Множественные результаты не могут быть возвращены в качестве результата, но вы можете реализовать это путем возврата списка:
function foo() { return array (0, 1, 2); } list ($zero, $one, $two) = foo();
Аргументы:
Информация может быть передана функции через список аргументов, которые являются разделенным запятыми списком переменных и/или констант.
Списки аргументов переменной длины не поддерживаются, но того же можно достичь, передавая массивы.
function takes_array($input) { echo "$input[0] + $input[1] = ", $input[0]+$input[1]; }
Передача по ссылке:
По умолчанию, аргументы функции передаются по значению. Для изменения аргументов в функции их надо передавать по ссылке. Для этого надо поставить амперсанд (&) перед именем аргумента в объявлении функции:
function foo( &$bar) { $bar .= "и добавочная строка."; } $str = "Это строка, "; foo($str); echo $str; // выведет : "Это строка, и добавочная строка."
function foo($bar) { $bar .= "и добавочная строка."; } $str = "Это строка, "; foo($str); echo $str; //выведет : "Это строка, " foo(&$str); echo $str; //выведет : "Это строка, и добавочная строка."
Значения по умолчанию:
Значение по умолчанию должно быть константой, а не переменной или членом класса.
function day ($type = "понедельник") { echo "Сегодня $type."; } echo day(); //выведет : Сегодня понедельник. echo day("вторник"); //выведет : Сегодня вторник.
Аргументы по умолчанию при описании должны находиться справо от остальных аргументов.
function day($day_num, $type = "понедельник") { return "Сегодня $day_num - $type."; }
old_function
Оператор OLD_FUNCTION позволяет вам определять функцию используя синтаксис PHP/FI2 (за исключением того, что вы должны заменить "function" на "old_function").
Это свойство только для совместимости и должно использоваться лишь конверторами PHP/FI2 -> PHP3. Описанные таким образом функции не могут быть вызваны из служебного кода PHP. Вы можете обойти это путем введения специальной функции в терминах PHP3, которая будет вызывать OLD_FUNCTION.
class
Набор переменных и функций, работающих с этими переменными.
<?php class Cart { var $items; // Количество вещей в корзине покупателя // Добавить $num наименований типа $artnr в корзину function add_item ($artnr, $num) { $this->items[$artnr] += $num; } // Убрать $num наименований $artnr из корзины function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } ?>
Классы это типы, то есть, заготовки для реальных переменных. Вы должны создавать переменные желаемого типа, используя оператор new:
$cart = new Cart; $cart->add_item("10", 1);
Классы могут быть расширениями других классов. Расширенный класс обладает всеми переменными и функциями базового класса и тем, что вы определите при расширении класса. Это делается используя ключевое слово extends :
class Named_Cart extends Cart { var $owner; function set_owner ($name) { $this->owner = $name; } }
Это определяет класс Named_Cart, который имеет все переменные и функции класса Cart плюс дополнительную переменную $owner и дополнительную функцию set_owner(). Вы можете создать поименованую корзину обычным образом и установить или получить владельца корзины. Также вы можете использовать и нормальные функции корзины в поименованой корзине :
$ncart = new Named_Cart; //Создать корзину $ncart->set_owner ("kris");//Указать владельцаprint $ncart->owner; //Распечатать имя владельца корзины $ncart->add_item ("10", 1);//унаследовано из обычной корзины