Это короткий фрагмент для ознакомления с книгой.
Справочник по PHP
О этом справочнике
Справочник предназначается для людей, уже освоивших азы программирования на языке 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.
bcdiv
Операция деления для двух чисел произвольной точности. Синтаксис: string bcdiv(string left_operand, string right_operand [, intscale]); Делит left_operand на right_operand и возвращает результат с точностью (знаками после запятой), заданной в параметре scale.
bcmod
Возвращает остаток целочисленного деления. Синтаксис: string bcmod(left_operand, string modulus); Данная функция возвращает остаток от целочисленного деления left_operand на modulus.
bcmul
Операция умножения для двух чисел произвольной точности. Синтаксис: string bcmul(string left_operand, string right_operand [, int scale]); Производит умножение left_operand на right_operand, и выдает результат в виде строки с точностью, заданной в переменной scale.
bcpow
Возведение одного числа произвольной точности в степень другого. Синтаксис: string bcpow(string x, string y, [int scale]); Возведение x в степень y. Параметр scale может использоваться для установки количества цифр после точки.
bcscale
Устанавливает точность вычислений. Синтаксис: string bcscale(int scale); Эта функция устанавливает заданную по умолчанию точность вычислений для всех математических функций BCMath, которые явно не определяют точность.
bcsqrt
Получение квадратного корня числа произвольной точности. Синтаксис: string bcsqrt(string operand [,int scale]); Возвращает квадратный корень аргумента operand. Параметр scale устанавливает количество цифр после десятичной отметки в результате.
bcsub
Вычитает одно число произвольной точности из другого. Синтаксис: string bcsub(string left_operand, right_operand [, int scale]); Возвращает разность двух переменных, указанных в параметрах функции (left_operand - right_operand) с точностью, указанной в необязательном параметре scale.
Функции GMP
Подразделы
Функции
Введение
Функции этого вида позволяют работать с целыми числами повышенной точности определенного формата используя библиотеку GNU MP.Эта библиотека не входит в стандартный пакет PHP. Загрузить коды библиотеки и документацию по ней можно на сайте http://www.swox.com/gmp/. Функции, приведенные в этой библиотеке, могут также работать с обычными целочисленными аргументами. В этом случае они будут автоматически преобразовываться в формат GMP. Но для увеличения производительности рекомендуется все же использовать числа формата GMP.Значения функции GMP
gmp_init
Создает число GMP. Синтаксис: resource gmp_init(mixed number) Число GMP создается из целочисленного или строкового аргумента. В строке может быть указано число десятеричного или шестнадцатеричного формата. Если это шестнадцатеричный формат, то перед числом должен стоять префикс 0x.
$x = gmp_init(45);
$y = gmp_init("46");
$z = gmp_init("0xfa4b");
Данная функция не обязательна (аргументы автоматически конвертируются в формат GMP), но желательна (при использовании функции gmp_init() повышается быстродействие).
gmp_intval
Преобразование GMP-числа в целое. Синтаксис: int gmp_intval(resource gmpnumber) Эта функция конвертирует GMP-число в целое в том случае, если получаемое число не превышает своего максимально допустимого размера.
gmp_strval
Преобразование GMP-числа в строку. Синтаксис: string gmp_strval(resource gmpnumber [, int base]) Функция возвращает число gmpnumber в строковом формате в системе счисления, заданной в необязательном параметре base. По умолчанию возвращает в десятичной системе счисления). Параметр base может принимать значения от 2 до 36.
$x = gmp_init("0xf1a5");
echo "В десятичной : ".gmp_strval($x);
echo "В base-36: ".gmp_strval($x,36);
gmp_abs
Вычисляет модуль GMP-числа. Синтаксис: resource gmp_abs(resourse x) Возвращает абсолютное значение числа, заданного в параметре x.
gmp_sign
Возвращает знак числа. Синтаксис: int gmp_sign(resource x) Функция gmp_sign() возвратит 1, если x - положительное число, и 0 - если отрицательное.
gmp_neg
Возвращает отрицательное значение числа. Синтаксис: recource gmp_neg(resource x) Возвратит -x.
Арифметика
gmp_add
Сложение двух чисел. Синтаксис: recource gmp_add(resource x, recource y) Функция возвратит GMP-число, равное сумме аргументов x и y.
gmp_sub
Вычитание двух чисел. Синтаксис: recource gmp_sub(resource x, recource y) Функция возвратит GMP-число, равное разности аргументов x и y.
gmp_mul
Умножение двух чисел. Синтаксис: recource gmp_mul(resource x, recource y) Функция возвратит GMP-число, равное произведению аргументов x и y.
gmp_div
Деление двух чисел. Синтаксис: recource gmp_div(resource x, recource y [, int round]) Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: Эта функция - синоним gmp_div_q().
gmp_div_q
Деление двух чисел. Синтаксис: recource gmp_div_q(resource x, recource y [, int round]) Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: У этой функции есть синоним - gmp_div().
gmp_div_r
Возвращает остаток от целочисленного деления. Синтаксис: recource gmp_div_r(resource x, recource y [, int round]) Функция возвращает остаток от деления x на y. Знак будет наследован от аргумента x.
gmp_div_qr
Производит деление с остатком. Синтаксис: array gmp_div_qr(resource x, recource y [, int round]) Данная функция комбинирует в себе действие двух предыдущих функций gmp_div_q() и gmp_div_r(). Она возвращает массив, состоящий из двух элементов:
$x=gmp_init("0xf3c3b5");
$result=gmp_div_qr($x, "0xb1");
echo "Целое: ".gmp[strval($result[0]);
echo "Остаток: ".gmp[strval($result[1]);
gmp_mod
Возвращает модуль остатка деления. Синтаксис: resource gmp_mod(resource x, recource y) Данная функция эквивалентна gmp_div_r(), за исключением того, что она возвращает абсолютное значение.
gmp_divexact
Производит безостаточное деление. Синтаксис: resource gmp_divexact(resource x, recource y) Данная функция использует алгоритм "точного" деления. Результат будет достоверным, только если x будет нацело делим y.
gmp_cmp
Производит сравнение двух чисел. Синтаксис: int gmp_cmp(resource x, recource y) Функция возвратит положительное значение, если x y; ноль, елси x = y; отрицательное значени, если x < y.
Математика
gmp_fact
Вычисляет факториал. Синтаксис: resource gmp_fact(resourse x) Возвращает факториал числа, заданного в параметре x.
gmp_sqrt
Вычисляет квадратный корень. Синтаксис: resource gmp_sqrt(resourse x) Возвращает квадратный корень числа, заданного в параметре x.
gmp_sqrtrm
Вычисляет квадратный корень с остатком. Синтаксис: array gmp_sqrtrm(resourse x) Данная функция возвращает массив, в котором элемент с индексом [0] - это квадратный корень аргумента, элемент с индексом [1] - разность между аргументом и элементом [0] в квадрате.
gmp_perfect_square
Определяет, является ли число полным квадратом. Синтаксис: bool gmp_perfect_square(resourse x) Функция gmp_perfect_square() возвратит true, если x является квадратом целого числа. В противном случае вернет false.
gmp_pow
Возведение в степень. Синтаксис: resource gmp_pow(resourse x, int y) Эта функция возвращает результат, равный возведения аргумента x в степень y, при условии, что y не отрицательный.
echo gmp_pow(2,3); // Выведет 8
echo gmp_pow(0,0); // Выведет 1
gmp_powm
gmp_prob_prime
Проверка "вероятно" простого числа. Синтаксис: int gmp_prob_prime(resourse x [, int reps]) Эта функция возвратит 0, в случае если x сложное число, т.е. имеющее более двух целых делителей. Возвратит 1, если x, возможно, простое число. Если возвращает 2, то тогда x - наверняка простое число. Аргумент reps определяет качество проверки. Чем большее это число, тем точнее результат. Может принимать значения от 5 до 10 (по умолчанию). Эта функция использует алгоритм вероятностного теста Миллера-Рабина.
gmp_gcd
Находит наибольший общий делитель. Синтаксис: resource gmp_gcd(resourse x, resource y) Всегда возвращает положительный результат.
gmp_gcdext
Нахождение наибольшего общего делителя со множителями. Синтаксис: array gmp_gcdext(resourse x, resource y) Функция gmp_gcdext() возвращает массив со значениями g,s,t, такими, что x*s+y*t=g=НОД(x,y), гдн НОД - наибольший общий делитель.
gmp_invert
Производит инверсию по модулю. Синтаксис: resource gmp_invert(resourse x, resource y) Функция возвращает дополнение x до значения, делящегося нацело на y. В случае, если результат не может быть найден, возвращает false.
gmp_legendre
Возвращает число Легранжа. Синтаксис: int gmp_legendre(resourse x, resource p) Функция возвращает число Легранжа. p должен быть четным положительным.
gmp_jacobi
Возвращает число Якоби. Синтаксис: int gmp_jacobi(resourse x, resource p) Функция возвращает число Якоби. p должен быть четным положительным.
gmp_random
Производит генерацию случайного числа. Синтаксис: resource gmp_random(int limited) limited задает длину генерируемого числа. В случае, если значение limited отрицательно, генерируется отрицательное число.
gmp_popcount
Получение популяции. Синтаксис: int gmp_popcount(resource x) Функция возвращает числитель популяции.
gmp_hamdist
Вычисление дистанции. Синтаксис: int gmp_hamdist(resource x, resource y) Функция возвращает дистанцию между числами x и y. Аргументы x и y должны быть неотрицательными.
Бинарные операции
gmp_and
Логическое И (AND). Синтаксис: resource gmp_and(resource x, resource y)
gmp_or
Логическое ИЛИ (OR). Синтаксис: resource gmp_or(resource x, resource y)
gmp_xor
Логическое исключающее-ИЛИ (XOR). Синтаксис: resource gmp_xor(resource x, resource y)
gmp_setbin
Установка бита. Синтаксис: resource gmp_setbin(resource &x, int index [, bool set_clear]) Устанавливает бит в позиции index в числе x. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию).
gmp_clrbit
Производит сброс бита. Синтаксис: resource gmp_clrbit(resource &x, int index) Устанавливает бит в позиции index в числе x в значение 0.
gmp_scan0
Производит поиск бита 0. Синтаксис: int gmp_scan0(resource x, int start) Функция gmp_scan0() ищет в числе x бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.
gmp_scan1
Производит поиск бита 1. Синтаксис: int gmp_scan1(resource x, int start) Функция gmp_scan0() ищет в числе x бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.
Работа с массивами
Введение
Эти функции позволят вам различными способами оперировать с массивами. Массивы идеально подходят для хранения, изменения и работы с наборами переменных. Поддерживаются одно- и многоразмерные массивы, как созданные пользователем, так и возвращенные в качестве результата какой-либо функцией. Существуют специальные функции для работы с базами данных, облегчающие работу с массивами данных, возвращаемых в результате выполнения запросов; также существуют функции, возвращающие массивы в качестве результата.
Требования
Эти функции всегда доступны.
Установка
Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.
Настройка во время выполнения
Данное расширение не определяет никакие директивы конфигурации в php.ini.
Типы ресурсов
Данное расширение не определяет никакие типы ресурсов.
Предопределенные константы
Перечисленные ниже константы всегда доступны как часть ядра PHP. Флаги типа сортировки:
Введение
Введение
Эти функции позволят вам различными способами оперировать с массивами. Массивы идеально подходят для хранения, изменения и работы с наборами переменных. Поддерживаются одно- и многоразмерные массивы, как созданные пользователем, так и возвращенные в качестве результата какой-либо функцией. Существуют специальные функции для работы с базами данных, облегчающие работу с массивами данных, возвращаемых в результате выполнения запросов; также существуют функции, возвращающие массивы в качестве результата.
Требования
Эти функции всегда доступны.
Установка
Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.
Настройка во время выполнения
Данное расширение не определяет никакие директивы конфигурации в php.ini.
Типы ресурсов
Данное расширение не определяет никакие типы ресурсов.
Предопределенные константы
Перечисленные ниже константы всегда доступны как часть ядра PHP. Флаги типа сортировки:
Создание массива
array
Создание и инициализация массива. Синтаксис: array array([mixed ...]) Функция возвращает созданный массив. Индексы и значения в массиве разделяются оператором =. Пары index=value разделяются запятыми, они определяют индекс и значение. Индекс может быть как числовым, так и строковым. В ассоциированных массивах индекс всегда ведет себя как строковой. В случае, если индекс не указан, будет подставляться автоинкремент (на 1 больше), начиная с 0. Если при создании массива были указаны два элемента с одинаковыми индексами, то последний элемент заменяет первый. Пример использования функции array():
<?php
$arr=array( // Далее мы создадим двумерный массив
"fruit" => array("a"=>"orange", "b"=>"banan", "c"=>"apple"),
// эта запись эквивалентна записи: $arr["fruit"]["a"]="orange"; и т.д.
"number" => array(1,2,3,4,5,6),
// эта запись эквивалентна записи: $arr["number"][]=1; и т.д.
"hotel" => array("first", 5=>"second", "third")
);
?>
$arr=array(1, 1, 1, 1, 2=>5, 19, 3=>20);
print_r($arr);
// Далее распечатка этого массива
Array
(
[0] => 1
[1] => 1
[2] => 5
[3] => 20
[4] => 19
)
$arr=array(1 => "Январь", "Февраль", "Март");
print_r($arr);
// распечатка
Array
(
[1] => Январь
[2] => Февраль
[3] => Март
)
Функция поддерживается PHP 3, PHP 4, PHP 5
range
Создает массив и заполняет его значениями. Синтаксис: array range(int low, int high[, int step]) Функция range() возвращает массив с значениями от low по high включительно. Если low high, то последовательность будет от high до low. Дополнительный параметр step был введен в PHP 5.0. Если третий параметр указан, то числа будут вводиться от low до high с шагом step. Если он не указан, то шаг будет равен 1. Пример использования функции range():
<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}
// The step parameter was introduced in 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
echo $number;
}
// Use of character sequences introduced in 4.1.0
// array("a", "b", "c", "d", "e", "f", "g", "h", "i");
foreach (range("a", "i") as $letter) {
echo $letter;
}
// array("c", "b", "a");
foreach (range("c", "a") as $letter) {
echo $letter;
}
?>
Функция поддерживается PHP 3 = 3.0.8, PHP 4, PHP 5
Сортировка массивов
array_reverse
Расстановка элементов массива в обратном порядке. Синтаксис: array array_reverse(array arr [, bool preserve_keys]) Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями не теряются, если дополнительный параметр preserve_keys = TRUE. Пример использования функции array_reverse():
<?php
$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, true);
?>
Этот пример сделает оба массива $result и $result_keyed с одинаковыми значениями, но различными ключами. Распечатка массивов $result и $result_keyed будет следующей:
Array( [0] => Array ( [0] => green [1] => red ) [1] => 4 [2] => php)Array( [2] => Array ( [0] => green [1] => red ) [1] => 4 [0] => php)
Примечание: Второй параметр preserve_keys был добавлен в PHP 4.0.3.
Функция поддерживается PHP 4, PHP 5
shuffle
Перемешивание элементов массива. Синтаксис: void shuffle(array arr) Функция shuffle() "перемешивает" список, переданный ей первым параметром arr, так, чтобы его значения распределялись случайным образом. При этом измениться сам массив и ассоциативные массивы воспринимаются как списки. Пример использования функции shuffle():
<?php
$numbers = range(1, 20);
srand((float)microtime() * 1000000);
shuffle($numbers);
while (list(, $number) = each($numbers)) {
echo "$number ";
}
?>
Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.
Функция поддерживается PHP 3 = 3.0.8, PHP 4, PHP 5
sort
Сортировка массива по возрастанию. Синтаксис: bool sort(array arr [, int sort_flags]) Функция sort() предназначена для сортировки массивов в порядке возрастания. Замечание: Эта функция изменяет ключи у отсортированных значений. Т.е. любой ассоциативный массив воспринимается этой функцией как список. После упорядочивания последовательность ключей превращается в 0,1,2,..., а значения нужным образом перераспределяются. Как видим, связи между параметрами ключ=значение не сохраняются, более того - ключи просто пропадают, поэтому сортировать что-либо, отличное от списка, вряд ли целесообразно. Пример использования функции sort():
<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "fruits[" . $key . "] = " . $val . "n";
}
?>
Этот пример выведет:
fruits[0] = applefruits[1] = bananafruits[2] = lemonfruits[3] = orange
Аргумент sort_flags задает следующие флаги сортировки:
Функция поддерживается PHP 3, PHP 4, PHP 5
rsort
Сортировка массива по убыванию. Синтаксис: bool rsort ( array array [, int sort_flags]) Функция rsort() сортирует массив array в порядке убывания (от высших значений к низшим). Функция возвращает TRUE в случае успешного завершения, и FALSE в противном случае. Пример использования функции rsort():
<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "$key = $valn";
}
?>
Этот пример выведет:
0 = orange1 = lemon2 = banana3 = apple
Аргумент sort_flags задает следующие флаги сортировки:
Функция поддерживается PHP 3, PHP 4, PHP 5
asort
Сортировка ассоциативного массива по возрастанию. Синтаксис: bool asort(array arr [, int sort_flags]) Функция asort() сортирует массив, указанный в ее параметре, так, чтобы его значения шли в алфавитном (если это строки) или возрастающем (для чисел) порядке. При этом сохраняются связи между ключами и соответствующими им значениями, т.е. некоторые пары ключ=значение просто "всплывают" наверх, а некоторые - наоборот, "опускаются". Функция возвращает true в случае успешного завершения, и false в случае возникновения ошибки. Пример использования функции asort():
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "$key = $valn";
}
?>
Пример выведет следующее:
c = appleb = bananad = lemona = orange
Массив $fruits был отсортирован в возрастающем символьном порядке, при этом индексы массива были сохранены.
Метод сортировки может быть изменен при помощи необязательного параметра sort_flags.
Этот параметр может указать, как сравнивать значения (как строки или как числа). Он может принимать следующие предопределенные значения:
Этот параметр был введен в PHP начиная с 4 версии.
Функция поддерживается PHP 3, PHP 4, PHP 5
arsort
Сортировка ассоциативного массива по убыванию. Синтаксис: bool arsort(array arr [, int sort_flags]) Функция arsort() сортирует массив arr по убыванию с сохранением индексных ассоциаций. Эта функция используется главным образом там, где существенен порядок элемента в массиве. Функция возвращает true в случае успешной сортировки, и false в случае возникновения ошибки. Пример использования функции arsort():
$arr=array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
arsort($arr);
reset($arr);
while(list ($key, $val) = each ($arr)) {
echo "$key = $val<BR>l";
}
Пример выведет: a = oranged = lemonb = bananac = apple Массив $arr был отсортирован в убывающем символьном порядке, при этом индексы массива были сохранены. Метод сортировки может быть изменен при помощи необязательного параметра sort_flags. Этот параметр может указать, как сравнивать значения (как строки или как числа). Он может принимать следующие предопределенные значения: Этот параметр был введен в PHP начиная с 4 версии. Функция поддерживается PHP 3, PHP 4, PHP 5
ksort
Сортировка массива по возрастанию ключей. Синтаксис: bool ksort(array arr [, int sort_flags]) Функция ksort() сортирует массив в порядке возрастания ключей с сохранением взаимосвязей ключей и значений. Эта функция особенно полезна при сортировке ассоциативных массивов. Функция возвратит true, если все прошло успешно, и false в противном случае. Пример использования функции ksort():
<?php
... Все права на текст принадлежат автору: .
Это короткий фрагмент для ознакомления с книгой.