Выражения
if
Позволяет организовывать выполнение фрагментов кода по условию.
Синтаксис :
if (выражение) statement
Может иметь неограниченную степень вложенности в другие IF.
if($a>$b)
print "$a больше $b";
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;
$a=1;
while ($a<=5) {
echo $a++; }
$a=1;
while ($a<=5):
echo $a;
$a++;
endwhile;
- Эти два примера выводят номера с 1 до 5.
do_while
Цикл, аналогичный WHILE, но значение логического выражения проверяется
не до, а после окончания итерации. Основное отличие - то что цикл хоть
один раз но выполнится.
$a=1;
do {
echo $a;
} while ($a>1);
Можно прекратить использовать блок операторов в середине путем внедрения
оператора BREAK в цикл DO..WHILE(0) :
do {
if ($a==5) {
echo "A равно 5"
break;
}
$a *= $b;
if ($a<$minimum) {
break;
}
echo "A равен $a";
} while(0);
for
Наиболее мощный цикл в PHP.
Синтаксис :
FOR (условие1; условие2; условие3)выражения
условие1 - Безусловно выполняется (вычисляется) в начале цикла
условие2 - Проверяется в начале каждой итерации. Если оно равно
TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно
равно FALSE, то цикл заканчивается.
условие3 - Выполняется (вычисляется) в конце каждой итерации.
Каждое из этих условий может быть пустым.
Пример 1:
for ($a = 1; $a <= 5; $a++) {
echo $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; $a <= 5; print $a, $a++);
PHP поддерживает альтернативный синтаксис FOR:
FOR(усл1; уcл2; усл3;):операторы;...;ENDFOR;
break
Прерывает выполнение текущего цикла.
Пример :
$a = 0;
while ($a < 5) {
if ($arr[$a] == "stop") {
break;
}
$a++;
}
continue
Переходит на начало ближайшего цикла.
while (list($key,$value) = each($arr)) {
if ($key % 2) {
continue;
}
do_something_odd ($value);
}
switch
Сравнивает переменную или выражение с различными значениями и выполняет
различные фрагменты кода в зависимости от того, чему будет равно
значение выражения.
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
Вставляет и выполняет содержимое указанного файла.
$files = array ("first.inc", "second.inc", "third.inc");
for ($a = 0; $a < count($files); $a++) {
include($files[$a]);
}
Так как INCLUDE() это специальный оператор, требуется заключать его в
фигурные скобки при использовании внутри условного оператора.
if ($a < 5) {
include("file_1.inc");
} else {
include("file_2.inc");
}
function
Объявление функции.
Внутри функции может быть любой верный код PHP, даже объявление другой
функции или класса. Функции должны быть объявлены перед тем, как на них
ссылаться.
function foo ($arg_1, $arg_2,...,$arg_n) {
echo "Пример функции.";
return $retvalue;
}
Возвращение результатов :
Результаты возвращаются через необязательный оператор return.
Возвращаемый результат может быть любого типа, включая списки и объекты.
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);//унаследовано из обычной корзины