Реклама полностью отключится, после прочтения нескольких страниц!



О этом справочнике

Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.

Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.


В связи с тем, что данный ресурс постоянно пополняется новой информацией, скачать обновленную версию справочника можно из раздела Download

http://www.spravkaweb.ru/download.php?user=help_php


Дата выхода данной версии справочника: 06:40, 25 марта 2007.



Также на сайте доступны для скачивания справочники по CSS, Perl, MySQL.


Синтаксис языка и операторы

Выражения


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)выражения

(условие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";

}

?>


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;

}

?>

Возвращение результатов:

<?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);//унаследовано из обычной корзины


Функции работы с данными

Математические функции

Функции округления


abs


Возвращает модуль числа.

Синтаксис:

mixed abs(mixed $number)

Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.

$x = abs(-4); // $x=4

$x = abs(-7.45); // $x=7.45



round


Округление дробного числа до целого.

Синтаксис:

double round(double $val)

Округляет $val до ближайшего целого и возвращает результат.

$foo = round(3.4); // $foo == 3.0

$foo = round(3.5); // $foo == 4.0

$foo = round(3.6); // $foo == 4.0


$x = round(5.3); // $x=5

$x = round(5.4); // $x=5

$x = round(5.45); // $x=5

$x = round(5.5); // $x=6



ceil


Дополнение дробного числа до следующего целого.

Синтаксис:

int ceil(float $number)

Возвращает наименьшее целое число, не меньше $number. Разумеется, передавать в $number целое число бессмысленно.

$x = ceil(5.0); // $x=5

$x = ceil(5.1); // $x=6

$x = ceil(5.9); // $x=6



floor


Удаление дробной части числа.

Синтаксис:

int floor(float $number)

Возвращает максимальное целое число, не превосходящее $number.

$x = floor(5.1); // $x=5

$x = floor(5.9); // $x=5


Случайные числа


srand


Производит инициализацию генератора случайных чисел.

Синтаксис:

void srand(int seed)

Инициализирует генератор случайных чисел занчением seed.

srand((double) microtime()*1000000);

$random = rand();

echo $random;



getrandmax


Возвращает максимально возможное случайное число.

Синтаксис:

int getrandmax()

Эта функция возвращает максимальное значение, которое можно получить при помощи функции генерации случайных чисел rand().

Обычно это 32767


rand


Производит генерацию случайного числа.

Синтаксис:

int rand([int max [, int min]])

При вызове с необязательными параметрами min и max эта функция генерирует случайное число, лежащее в пределах этих параметров включительно.

Если параметры min и max отсутствуют, возвращается число, лежащее в пределах от 0 до RAND_MAX.

Для корректной работы данной функции перед ее использованием нужно проинициализировать генератор случайных чисел функцией srand().


mt_rand


Функция возвращает MT-случайное число, достаточно равномерно даже для того, чтобы использовать его в криптографии.

Синтаксис:

int mt_rand(int $min=0, int $max=RAND_MAX)

Если вы хотите генерировать числа не от 0 до RAND_MAX (эта константа задает максимально допустимое случайное число, и ее можно получить при помощи вызова mt_getrandmax()), задайте соответствующий интервал в параметрах $min и $max. Не забудьте только перед первым вызовом этой функции запустить mt_srand().

mt_srand(time()+(double)microtime()*1000000);

$x = mt_rand(1,100); // $x - значение от 1 до 100



mt_srand


Настраивает MT-генератор случайных чисел на новую последовательность.

Синтаксис:

void mt_srand(int seed)

Дело в том, что хотя числа, генерируемые mt_rand(), достаточно равновероятны, но у них есть один нелостаток: последовательность сгенерированных чисел будет одинакова если сценарий вызывать несколько раз подряд. Функция mt_srand() как раз решает данную проблему: она выбирает новую последовательность на основе параметра $seed, причем практически непредсказуемым образом.

mt_srand(time()+(double)microtime()*1000000);

for($i=0;$i<=10;$i++) {

$x = mt_rand(1,10);

};


В этом случае последовательность устанавливается на основе времени запуска сценария (в секундах), поэтому она достаточно непредсказуема. Для еще более надежного результата рекомендуется приплюсовать сюда еще микросекунды (что и было сделано), а также идентификатор процесса, вызывавшего сценарий.


mt_getrandmax


Возвращает максимальное MT-случайное число.

Синтаксис:

int mt_getrandmax()

Возвращает максимальное число, которое может быть сгенерированно функцией mt_rand() - иными словами, константу RAND_MAX

$max = mt_getrandmax();

// $max = 2147483647



lcg_value


функция генерирует случайное дробное число.

Синтаксис:

double lcg_value()

Эта функция возвращает псевдослучайное дробное число в диапазоне от 0 до 1.

Перевод в различные системы счисления


base_convert


Конвертация числа из одной системы счисления в другую.

Синтаксис:

string base_convert(string $number, int $frombase, int $tobase)

Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это - не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:

$x = base_convert("FF",16,2); //$x = 11111111

$x = base_convert("11111111",2,16); //$x = FF

$x = base_convert("200",10,16); //$x = C8



bindec


Производит конвертацию двоичного числа в десятичное.

Синтаксис:

int bindec(string binary_string)

Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

$x = bindec(11111111); // $x = 255

$x = bindec(10101010); // $x = 170

$x = bindec(2147483647); // $x = 1111111111111111111111111111111



decbin


Производит конвертацию десятичного числа в двоичное.

Синтаксис:

string decbin(int $number)

Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе.

Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо "bin" подставляются соответственно "oct" и "hex".

$x = decbin(255); // $x = 11111111

$x = decbin(2147483647); // $x = 1111111111111111111111111111111



dechex


Производит конвертацию десятичного числа в шестнадцатеричное.

Синтаксис:

string dechex(int number)

Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

$x = dechex(2147483647); // $x = 7fffffff



decoct


Производит конвертацию десятичного числа в восьмеричное.

Синтаксис:

string decoct(int number)

Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

$x = dechex(2147483647); // $x = 17777777777



hexdec


Производит конвертацию шестнадцатеричного числа в десятичное.

Синтаксис:

int hexdec(string hex_string)

Преобразует шестнадцатеричное число, заданное в строке hex_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 7fffffff

$x = hexdec(7fffffff); // $x = 2147483647



octdec


Производит конвертацию восьмеричного числа в десятичное.

Синтаксис:

int octdec(string octal_string)

Преобразует восьмеричное число, заданное в строке octal_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 17777777777

$x = octdec(17777777777); // $x = 2147483647



deg2rad


Производит конвертацию градусов в радианы.

Синтаксис:

double deg2rad(double number)

Преобразует градусы, заданные в параметре number, в радианы.


rad2deg


Производит конвертацию радианов в градусы.

Синтаксис:

double rad2deg(double number)

Преобразует радианы, заданные в параметре number, в градусы.


number_format


Форматирование числа.

Синтаксис:

number_format($number, $decimals, $dec_point=".", $thousands_sep=",");

Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке.

Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep - разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).

Минимум и максимум


min


Эта функция возвращает наименьшее из чисел, заданных в ее аргументах.

Синтаксис:

mixed min(mixed $arg1 [int $arg2, ..., int $argn])

Различают два способа вызова этой функции: с одним параметром или с несколькими. Если указан лишь один параметр (первый), то он обязательно должен быть массивом и возвращается минимальный элемент этого массива. В противном случае первый (и остальные) аргументы трактуются как числа с плавающей точкой, они сравниваются, и возвращается наименьшее. Тип возвращаемого значения выбирается так: если хотябы одно из чисел, переданных на вход, задано в формате с плавающей точкой, то и результат будет с плавающей точкой, в противном случае результат будет целым числом. С помощью этой функции нельзя лексографически сравнивать строки - только числа.

$x = min(5,3,4,6,5,6,8,9);

// $x = 3

$x[0]=4;

$x[1]=1;

$x[2]=5;

$x[3]=2;

echo min($x); // выведет 1



max


Получение наибольшего аргумента.

Синтаксис:

mixed max(mixed $arg1 [int $arg2, ..., int $argn])

Функция работает аналогично min(), только ищет максимальное значение.

$x = max(5,3,4,6,5,6,8,9);

// $x = 9

$x[0]=4;

$x[1]=1;

$x[2]=5;

$x[3]=2;

echo max($x); // выведет 5


Степенные функции


sqrt


Возвращает квадратный корень из аргумента.

Синтаксис:

float sqrt(float $arg)

Если аргумент отрицателен, то генерируется предупреждение, но работа программы не прекращается!

$x = sqrt(9);

// $x = 3

echo sqrt(25); // выведет 5

echo sqrt(-25); // выведет -1.#IND



log


Возвращает натуральный логарифм аргумента.

Синтаксис:

float log(float $arg)

В случае недопустимого числа печатает предупреждение, но не завершает программу.

$x = log(exp(2)); // exp(2) - e в степени 2

// $x = 2

$x = log(M_E); // $x = 1

echo log(10); // выведет 2.302585092994



log10


Возвращает десятичный логарифм аргумента.

Синтаксис:

float log10(float $arg)

В случае недопустимого числа печатает предупреждение, но не завершает программу.

echo log10(100); // выведет 2



exp


Возвращает e (2,718281828) в степени $arg.

Синтаксис:

float exp(float $arg)

$x = exp(1);

// $x = 2.718281828459



pow


Возведение в степень.

Синтаксис:

float pow(float $base, float $exp)

Возвращает $base в степени $exp.

$x = pow(3,2); // $x = 9

$x = pow("3",2); // $x = 9


Тригонометрия


sin


Возвращает синус аргумента.

Синтаксис:

float sin(float $arg)

Аргумент задается в радианах.

$x = sin(M_PI_2); // $x = 1



cos


Возвращает косинус аргумента.

Синтаксис:

float cos(float $arg)

$x = cos(0); // $x = 0

$x = cos(M_PI); // $x = -1



tan


Возвращает тангенс аргумента, заданного в радианах.

Синтаксис:

float tan(float $arg)

$x = tan(M_PI_4); // $x = 1



acos


Возвращает арккосинус аргумента.

Синтаксис:

float acos(float $arg)

$x = acos(0); // $x = pi/2

$x = acos(1); // $x = 0



asin


Возвращает арксинус.

Синтаксис:

float asin(float $arg)

$x = asin(0); // $x = 0

$x = asin(1); // $x = pi/2



atan


Возвращает арктангенс аргумента.

Синтаксис:

float atan(float $arg)

$x = atan(0); // $x = 0

$x = atan(1); // $x = pi/4



atan2


Получение арктангенса двух чисел.

Синтаксис:

float atan2(float $y, float $x)

Возвращает арктангенс величины $y/$x, но с учетом той четверти, в которой лежит точка ($x,$y). Эта функция возвращает результат в радианах, принадлежащий отрезку от -? до ?.

$x = atan2(1,1); // $x = pi/4

$x = atan2(-1,-1); // $x = -3*pi/4



pi


Возвращает число пи - 3,14.

Синтаксис:

double pi()

Эту функцию обязательно нужно вызывать с парой пустых скобок:

$x = pi()*2 // $x = 31.415926535898


Функции повышенной точности BCMath


bcadd


Сложение двух чисел произвольной точности.

Синтаксис:

string bcadd(string left_operand, string right_operand [, int scale]);

Эта функция возвращает строковое представление суммы двух параметров (left_operand + right_operand) с точностью, которая указана в необязательном параметре scale.

Точность (scale) указывает количество десятичных знаков после запятой).


bccomp


Сравнение двух чисел произвольной точности.

Синтаксис:

int bccomp(string left_operand, string right_operand, [int scale]);

Сравнивает числа (left_operand с right_operand) и возвращает результат типа integer (целое). Параметр scale используется для установки количества цифр после десятичной отметки, используемых при сравнении. При равенстве двух частей возвращается значение 0. Если левая часть больше правой части возвращается +1, и если левая часть меньше правой части возвращается -1.

Читать книгу онлайн Справочник по PHP - автор или скачать бесплатно и без регистрации в формате fb2. Книга написана в году, в жанре Зарубежная компьютерная, околокомпьютерная литература, Программирование, программы, базы данных. Читаемые, полные версии книг, без сокращений - на сайте Knigism.online.