Стандартные функции PHP
В PHP определено большое количество стандартных функций, которые по областям применения разбиты более чем на сто групп.
Основными группами стандартных функций являются:
· математические функции;
· функции для работы с массивами;
· функции для работы с символами и строками;
· функции для работы с регулярными выражениями;
· функции для работы с датой и временем;
· функции для работы с файлами.
При описании стандартных функций PHP используется следующий синтаксис:
возвращаемый-тип имя-функции (тип-1 параметр-1, тип-2 параметр-2, …)
где возвращаемый-тип – имя типа для значения, возвращаемого функцией, тип-1, тип-2 и т.д. – типы значений параметров функций, а параметр-1, параметр-2 и т.д. – имена параметров функций. Необязательные параметры заключаются в квадратные скобки. Переменное число параметров одно и того же типа в функции указывается с помощью конструкции имя-типа ….
Если параметр или возвращаемое значение имеют определенный тип, то указывается имя этого типа, например, int или array. Если тип параметра или возвращаемого значения может быть произвольным, то в качестве типа указывается псевдотип mixed. Если функция не возвращает значения, в качестве типа возвращаемого значения указывается тип void. Если функция не требует параметров, то вместо списка параметров в скобках указывается тип void или пустые скобки.
|
|
Математические функции PHP можно разделить на следующие категории:
· функции выполнения операций над числами;
· тригонометрические функции и обратные тригонометрические функции;
· гиперболические функции и обратные гиперболические функции;
· функции проверки числовых значений;
· функции перевода чисел из одной системы счисления в другую;
· функции генерации случайных чисел.
Функции выполнения операций над числами включают в себя следующие основные функции:
· number abs(mixed number) – определение модуля (абсолютного значения) числа number;
· float ceil(float value) – определение ближайшего большего целого для числа value;
· float exp(float arg) – определение экспоненты числа arg;
· float floor(float value) – определение ближайшего меньшего целого для числа value;
· float log10(float arg) – определение десятичного логарифма числа arg;
· float log(float arg) – определение натурального логарифма числа arg;
· mixed max(number arg1, number arg2[, number...]) или mixed max(array numbers) – определение аргумента с максимальным значением или элемента массива с максимальным значением;
· mixed min(number arg1, number arg2[, number...]) или mixed min(array numbers) – определение аргумента с минимальным значением или элемента массива с минимальным значением;
· number pow(number base, number exp) – получение степени exp числа base;
|
|
· float round(float val[, int precision]) – определяет округленное значение числа val с точностью precision;
· float sqrt (float arg) – определение квадратного корня числа arg.
Пример 4.6.94. Вычисление степени числа:
В следующем фрагменте вводятся два числа – $x и $y, а затем вычисляется и выводится значение $x$y:
echo "\nEnter x: ";
$x = (float)trim(fgets(STDIN));
echo "\nEnter y: ";
$y = (float)trim(fgets(STDIN));
echo "\nx^y=", pow($x, $y);
Вывод этого фрагмента может иметь следующий вид:
Тригонометрические функции и обратные тригонометрические функции в качестве аргумента используют значение float и возвращают значение float.
Тригонометрические функции – это следующие функции: cos (косинус), sin (синус) и tan (тангенс), а обратные тригонометрические функции – это acos (арккосинус), asin (арксинус) и atan (арктангенс).
Гиперболические функции и обратные гиперболические функции также в качестве аргумента используют значение float и возвращают значение float.
К гиперболическим функциям относятся cosh (гиперболический косинус), sinh (гиперболический синус) и tanh (гиперболический тангенс), а к обратным гиперболическим функциям – acosh (обратный гиперболический косинус), asinh (обратный гиперболический синус) и atanh (обратный гиперболический тангенс).
Функции проверки числовых значений определяют, соответствует ли аргумент типа float заданному типу и возвращают значение true, если соответствует и false – если не соответствует. Так, функция is_finite проверяет, является ли число конечным, функция is_infinite – является ли число бесконечным, а функция is_nan – является ли аргумент не числом.
К функциям перевода чисел из одной системы счисления в другую относятся:
· number bindec(string binary_string) – перевод двоичного числа, представленного в виде строки символов, в десятичное число;
· number hexdec(string hex_string) – перевод шестнадцатеричного числа, представленного в виде строки символов, в десятичное число;
· number octdec(string octal_string) – перевод восьмеричного числа, представленного в виде строки символов, в десятичное число;
· string decbin(int number) – возврат строки, содержащей двоичное представление аргумента;
· string dechex(int number) – возврат строки, содержащей шестнадцатеричное представление аргумента;
· string decoct(int number) – возврат строки, содержащей восьмеричное представление аргумента.
Пример 4.6.95. Вывод десятичного числа в различных системах счисления:
В следующем фрагменте программы вводится число – $x, а затем выводится его двоичное, восьмеричное и шестнадцатеричное представление:
echo "\nEnter number x: ";
$x = (int)trim(fgets(STDIN));
echo "\n x binary value: ", decbin($x);
echo "\n x octal value: ", decoct($x);
echo "\n x hex value: ", dechex($x);
Вывод этого фрагмента может иметь следующий вид:
Для генерации случайных чисел используются следующие функции:
· int getrandmax(void) – получение максимально допустимого случайного числа;
· void srand([int seed]) – установка начального значения генератора случайных чисел;
· int rand([int min, int max]) – генерация целого случайного числа, равномерно распределенного в диапазоне от min до max (если значения min и max не заданы, генерируется случайное число в диапазоне от 0 до значения, полученного с помощью функции getrandmax()).
Пример 4.6.96. Генерация случайного числа:
В следующем фрагменте сценария генерируются и выводятся два случайных числа, равномерно распределенные в диапазоне от 0 до 1, с точностью три знака после запятой:
// Установка начального значения
// генератора случайных чисел
srand(5);
// Получение первого случайного числа
// в диапазоне (0-1)
$rand1 = ((double)rand(1, 1000))/1000.0;
// Получение второго случайного числа
// в диапазоне (0-1)
$rand2 = ((double)rand(1, 1000))/1000.0;
// Вывод случайных чисел
print "\n\$rand1=$rand1 \$rand2=$rand2";
В результате выполнения фрагмента будет выведена следующая строка: