Пример:
>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;
>}
?>
Возвращение результатов:
>
>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
Набор переменных и функций, работающих с этими переменными.
>
>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 плюс дополнительную переменную