Смекни!
smekni.com

Учебник php (стр. 1 из 26)

Краткое содержание

Синтаксис языка и операторы
·Выражения
Функции работы с данными
·Математические функции·Функции округления·Случайные числа·Перевод в различные системы счисления·Минимум и максимум·Степенные функции·Тригонометрия·Функции повышенной точности BCMath·Функции GMP·Функции GMP. Значения функции GMP·Функции GMP. Арифметика·Функции GMP. Математика·Функции GMP. Бинарные операции·Работа с массивами·Создание массива·Сортировка массивов·Курсор массива·Ключи и значения·Комплексная замена в строке·Работа с несколькими массивами·Получение и удаление части массива·Вставка/удаление элементов·Переменные и массивы·Строковые функции·Функции для работы с одиночными символами·Функции отрезания пробелов·Поиск в тексте·Функции сравнения·Форматирование и вывод строк·Составление/разбиение строк·Работа с блоками текста·Функции для преобразования символов·Функции изменения регистра·Установка локали (локальных настроек)·Преобразование кодировок·Функции форматных преобразований·Функции URL·Работа с бинарными данными·Строковые суммы и хеш-функции·Символические ссылки. Жесткие ссылки·Функции даты и времени·Логические функции определения типа переменной·Функции переменных·Функции для работы с функциями·Календарные функции
Файлы и сети
·Работа с файлами·Открытие файла·Закрытие файла·Чтение и запись·Положение указателя текущей позиции·Функции для определения типов файлов·Определение параметров файла·Функции для работы с именами файлов·Функции манипулирования целыми файлами·Другие функции·Функции для работы с каталогами·Манипулирование каталогами·Работа с записями·FTP·Работа с FTP-сервером·Работа файлами·Функции IMAP·Функции SNMP·Функции Vmailmgr·Сетевые функции
Управляющие функции
·Отслеживание и обработка ошибок·Введение·Функции обработки ошибок·Установка пользовательского обработчика ошибок·Управление сессиями·Зачем нужны сессии.Механизм работы сессий·Инициализация сессии и регистрация переменных·Имя группы сессии·Идентификатор сессии·Другие функции·Обзор обработчиков·Про сессии и Cookies·Работа с WWW·Установка заголовков ответа·Получение заголовков запроса·Работа с Cookies·SSI и функция virtual()·Управление выводом·Введение·Функции управления выводом·Управление исполнением сценария PHP·Функции управления сценарием·Статус подключений·Дополнительные функции·Почтовые функции·Функции запуска программ·Функции динамической загрузки·Информационные функции
Взаимодействие с базами данных
·База данных MySQL·Работа с базами данных·Обработка результатов запроса
Графика
·Работа с изображениями и библиотека GD·Параметры изображения·Работа с цветом в формате RGB·Графические примитивы·Работа с фиксированными шрифтами·Работа со шрифтами TrueType·PDF-документы·Введение·Открытие документа·Работа с текстом·Установка масштаба и системы координат·Черчение и заполнение фигур·Размещение рисунков·Стиль документа

Выражения

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
Набор переменных и функций, работающих с этими переменными.

<?phpclass 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 :