Справочник по PHP : Синтаксис языка и операторы : Выражения

Материал из Справочник Web-языков.

Перейти к: навигация, поиск
Главная  ::. PHP  ::. Синтаксис языка и операторы  ::. Выражения

Содержание

[править] 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 <= 5) {
    echo 
$a++;
}
?>
<?php
$a 
1;
while(
$a <= 5):
  echo 
$a;
  
$a++;
endwhile;
?>


- Эти два примера выводят номера с 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 (
$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

Переходит на начало ближайшего цикла.

<?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 count($files); $a++) {
  include(
$files[$a]);
}
?>

Так как INCLUDE() это специальный оператор, требуется заключать его в фигурные скобки при использовании внутри условного оператора.

<?php
if ($a 5) {
  include(
"file_1.inc");
} else {
  include(
"file_2.inc");
}
?>

[править] function

Объявление функции.

Внутри функции может быть любой верный код 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 (
012);
}
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);//унаследовано из обычной корзины
Личные инструменты
2.69182515144