Php руководство по рнр 3 0 математические функции


Содержание

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

Эти math-функции обрабатывают только значения в диапазоне типов от integer до float на вашем компьютере (в данный момент это соответствует C-типам от long до double). Если вам нужно работать с б́ольшими числами, ознакомьтесь с math-функциями произвольной точности.

Следующие значения определены как константы в PHP расширением math:

Таблица 1. Math-константы

Константа Значение Описание
M_PI 3.14159265358979323846 Pi
M_E 2.7182818284590452354 e
M_LOG2E 1.4426950408889634074 log_2 e
M_LOG10E 0.43429448190325182765 log_10 e
M_LN2 0.69314718055994530942 log_e 2
M_LN10 2.30258509299404568402 log_e 10
M_PI_2 1.57079632679489661923 pi/2
M_PI_4 0.78539816339744830962 pi/4
M_1_PI 0.31830988618379067154 1/pi
M_2_PI 0.63661977236758134308 2/pi
M_SQRTPI 1.77245385090551602729 sqrt(pi) [4.0.2]
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)
M_SQRT2 1.41421356237309504880 sqrt(2)
M_SQRT3 1.73205080756887729352 sqrt(3) [4.0.2]
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
M_LNPI 1.14472988584940017414 log_e(pi) [4.0.2]
M_EULER 0.57721566490153286061 константа Эйлера [4.0.2]

Только M_PI доступна в версиях до PHP 4.0.0. Все другие константы доступны, начиная с PHP 4.0.0. Константы, помеченные [4.0.2] были введены в PHP 4.0.2.

Содержание abs — абсолютное значение acos — арккосинус acosh — инверсный гиперболический косинус asin — арксинус asinh — инверсный гиперболический синус atan2 — арктангенс двух переменных atan — арктангенс atanh — инверсный гиперболический тангенс base_convert — конвертирует число между произвольными базами bindec — двоичное в 10-ричное ceil — округление дробей в сторону увеличения cos — косинус cosh — гиперболический косинус decbin — десятеричное в двоичное dechex — 10-ричное в 16-ричное decoct — 10-ричное в 8-ричное deg2rad — конвертирует число в градусах в эквивалент в радианах exp — e в степени . expm1 — возвращает exp(число) — 1, вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю floor — округляет дробь в сторону уменьшения getrandmax — показывает наибольшее возможное случайное значение hexdec — 16-ричное в 10-ричное hypot — возвращает sqrt( num1*num1 + num2*num2) is_finite — is_infinite — is_nan — lcg_value — комбинированный линеарный конгруэнтный генератор log10 — логарифм с базой 10 log1p — возвращает log(1 + число), вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю log — натуральный логарифм max — находит наибольшее значение min — находит наименьшее значение mt_getrandmax — показывает наибольшее возможное случайное значение mt_rand — генерирует наилучшее случайное значение mt_srand — запускает генератор наилучшего случайного числа number_format — форматирует число с группировкой по тысячам octdec — 8-ричное в 10-ричное pi — значение pi pow — экспоненциальное выражение rad2deg — конвертирует число в радианах в эквивалент в градусах rand — генерирует случайное число round — округляет число с плавающей точкой/float sin — синус sinh — гиперболический синус sqrt — квадратный корень srand — запускает генератор наилучшего случайного числа tan — тангенс tanh — гиперболический тангенс


Назад Оглавление Вперёд
mailparse_uudecode_all Вверх abs

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Обработка чисел и математические операции в PHP

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

Разработчики языка PHP приняли вполне обоснованный подход и не стали предпринимать какие-либо попытки снова изобретать колеса, предназначенные для указанной цели. Дело в том, что многие из наиболее фундаментальных математических функций, применяемых в языке PHP, являются просто оболочками вокруг аналогов этих функций на языке C.

Математические операции

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

Арифметические операции

К пяти основным арифметическим операциям относятся те операции, которые обычно реализованы в любом четырехфункциональном калькуляторе, а также операция деления по модулю (%). Краткое описание арифметических операций приведено в таблице:

Арифметические операции

Операция Описание
+ Возвращает сумму значений двух своих операндов
Если имеются два операнда, то значение правого операнда вычитается из значения левого. Если имеется только правый операнд, то операция возвращает значение этого операнда с обратным знаком
* Возвращает произведение значений двух своих операндов
/ Возвращает результат деления с плавающей точкой значения левого операнда на значение правого операнда
% Возвращает остаток от целочисленного деления значения левого операнда на абсолютное значение правого операнда

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

Операция деления по модулю (%) в языке PHP принимает целочисленные операнды, а если эта операция применяется к числам с плавающей точкой двойной точности, то эти числа предварительно преобразуются в целые числа (путем отбрасывания дробной части). Результатом такой операции всегда является целое число.

Операции инкремента и декремента

Значительная часть синтаксиса языка PHP унаследована от языка C, а программисты C славятся любовью к краткости и гордятся этим. Операции инкремента и декремента, взятые из языка C, позволяют более кратко представлять выражения типа $count = $count + 1, которые обычно встречаются в программах достаточно часто.

Операция инкремента (++) применяется для добавления единицы к значению той переменной, на которую распространяется эта операция, а операция декремента (—) вычитает единицу из значения такой переменной.

Каждая из этих двух операций имеет две разновидности — суффиксную (в этой форме знак операции помещается непосредственно вслед за переменной, на которую распространяется операция) и префиксную (в этой форме знак операции помещается непосредственно перед переменной, на которую распространяется операция). Обе разновидности имеют один и тот же побочный эффект, связанный с изменением значения переменной, но суффиксные и префиксные операции возвращают разные значения при использовании в качестве выражений. Суффиксная операция действует так, что значение переменной изменяется после возврата значения выражения, а префиксная операция действует таким образом, что вначале изменяется значение, а затем переменной возвращается новое значение. Указанное различие можно обнаружить, используя операции декремента и инкремента в операторах присваивания:

Приведенные операторы формируют следующий вывод в окне браузера:

В этом примере оператор $result = $count++ полностью эквивалентен операторам:

Наряду с этим оператор $result = ++$count эквивалентен таким операторам:

Операции присваивания

Операции инкремента (и декремента) позволяют уменьшить объем кода, необходимого для добавления единицы к значению переменной, но не позволяют сократить объем кода, в котором переменной присваивается результат сложения ее значения с другим числом или результат выполнения других арифметических действий. К счастью, все пять арифметических операций имеют соответствующие им операции присваивания (+=, -=, *=, /= и %=), позволяющие присвоить переменной в одном кратком выражении результат выполнения арифметической операции над значением этой переменной. Например, оператор

может быть сокращенно представлен таким

Простые математические функции

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

Простые математические функции PHP

Функция Описание
floor() Принимает единственный фактический параметр (как правило, число с плавающей точкой двойной точности) и возвращает наибольшее целое число, которое меньше или равно этому фактическому параметру (округление в меньшую сторону)
ceil() Имя этой функции представляет собой сокращение от слова ceiling (потолок). Функция принимает единственный фактический параметр (как правило, число с плавающей точкой двойной точности) и возвращает наименьшее целое число, которое больше или равно этому фактическому параметру (округление в большую сторону)
round() Принимает единственный фактический параметр (как правило, число с плавающей точкой двойной точности) и возвращает ближайшее целое число
abs() Модуль числа. Если единственный числовой фактический параметр имеет отрицательное значение, то функция возвращает соответствующее положительное число; если фактический параметр является положительным, то функция возвращает сам фактический параметр
min() Принимает любое количество числовых фактических параметров (но не менее одного) и возвращает наименьшее из всех значений фактических параметров
max() Принимает любое количество числовых фактических параметров (но не менее одного) и возвращает наибольшее из всех значений фактических параметров

Например, результат следующего выражения равен 3, поскольку значение каждого выражения с вызовом функции также равно 3:

Выработка случайных чисел

В языке PHP применяются два генератора случайных чисел (вызываемых соответственно с помощью функций rand() и mt_rand()). С каждым из этих генераторов связаны по три функции одинакового назначения: функция задания начального значения (srand() и mt_srand()), сама функция получения случайного числа и функция, осуществляющая выборку наибольшего целого числа, которое может быть возвращено генератором ((getrandmax() и mt_getrandmax())). Функции getrandmax() и mt_getrandmax() возвращают значение наибольшего числа, которое может быть возвращено функцией rand() или mt_rand(), на платформах Windows это значение ограничено величиной 32768.

Выбор конкретной функции выработки псевдослучайных чисел, которая используется в функции rand(), может зависеть от того, с какими именно библиотеками был откомпилирован интерпретатор PHP. В отличие от этого в генераторе mt_rand() всегда используется одна и та же функция выработки псевдослучайных чисел (mt — сокращение от Mersenne Twister), причем автор оперативной документации к функции mt_rand() утверждает, что эта функция к тому же является более быстродействующей и «более случайной» (с точки зрения криптографии), чем rand(). У нас нет оснований сомневаться в истинности этих утверждений, поэтому мы предпочитаем использовать функцию mt_rand(), а не rand().

При использовании некоторых версий PHP для некоторых платформ создается впечатление, что функции rand() и mt_rand() вырабатывают на первый взгляд вполне приемлемые случайные числа, даже без предварительного задания начального значения. Но такому впечатлению не следует доверять. Во-первых, программы, в которых используются функции выработки случайных чисел без задания начального значения, невозможно легко переносить на другие платформы, а, во-вторых, надежная работа указанных функций без задания начального значения не гарантируется.

Типичный способ задания начального значения для любого из генераторов случайных чисел PHP (с использованием функции mt_srand() или srand()) заключается в следующем:

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

Данный конкретный метод задания начального значения был глубоко продуман теми специалистами, которые полностью понимают все нюансы выработки псевдослучайных чисел, поэтому, скорее всего, навсегда останется лучшим по сравнению с любыми попытками какого-то отдельного программиста придумать что-то более «заковыристое».

Очевидно, что указанные функции выработки псевдослучайных чисел возвращают только целые числа, но случайное целое число из заданного диапазона можно легко преобразовать в соответствующее число с плавающей точкой (скажем, в число из диапазона от 0.0 до 1.0 включительно) с помощью выражения наподобие rand() / getrandmax(). После этого указанный диапазон можно масштабировать и сдвигать по мере необходимости. Ниже показан пример:

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

Математические константы

В PHP версии 4.0 существовала только одна математическая константа, описанная в документации — M_PI (значение числа π, представленное в виде числа с плавающей точкой двойной точности). А начиная с версии PHP 4.0.2 было введено много новых констант. Большинство этих новых констант относились к числу π (или к кратным ему значениям), числу e (или к кратным ему значениям), а также к квадратным корням; кроме того, некоторые константы относились к другим типам. Но в следующих выпусках по ряду причин список констант снова сократился до сравнительно небольшого количества заранее заданных математических констант:

Математические константы PHP

Константа Описание
M_PI π
M_PI_2 π / 2
M_PI_4 π / 4
M_1_PI 1 / π
M_2_PI 2 / π
M_2_SQRTPI 2 / sqrt(π)
M_E e
M_SQRT2 sqrt(2)
M_SQRT1_2 1 / sqrt(2)
M_LOG2E log2(e)
M_LOG10E lg(e)
M_LN2 loge(2)
M_LN10 loge(10)

Проверка формата чисел

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

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

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

Ниже показан пример использования этих функций:

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

По умолчанию в языке PHP для прямого и обратного преобразования числовых значений из внешнего представления во внутреннее применяется основание системы счисления 10. Кроме того, можно сообщить интерпретатору PHP, что во внешнем представлении используются восьмеричные числа, заданные по основанию 8 (для этого перед числом необходимо ввести ведущий 0), или шестнадцатеричные числа, заданные по основанию 16 (для этого перед числом необходимо ввести префикс 0x).

Безусловно, после преобразования чисел из внешнего представления во внутреннее они хранятся в памяти в двоичном формате, а все основные арифметические и математические вычисления осуществляются в самой операционной системе по основанию 2. Кроме того, в языке PHP предусмотрен ряд функций для преобразования чисел из одного основания системы счисления в другое. Общие сведения об этих функциях приведены в таблице ниже:

Функции преобразования систем счисления

Функция Описание
BinDec() Принимает единственный строковый параметр, представляющий собой двоичное целое число (число по основанию 2), и возвращает строковое представление этого числа по основанию системы счисления 10
DecBin() Аналогична BinDec(), но преобразует из основания системы счисления 10 в основание системы счисления 2
OctDec() Аналогична BinDec(), но преобразует из основания системы счисления 8 в основание системы счисления 10
DecOct() Аналогична BinDec(), но преобразует из основания системы счисления 10 в основание системы счисления 8
HexDec() Аналогична BinDec(), но преобразует из основания системы счисления 16 в основание системы счисления 10
DecHex() Аналогична BinDec(), но преобразует из основания системы счисления 10 в основание системы счисления 16
base_convert() Принимает строковый параметр (представляющий целое число, которое подлежит преобразованию) и два целочисленных параметра (исходное и желаемое основание). Возвращает строку, представляющую преобразованное число. В этой строке цифры старше, чем 9 (от 10 до 35), представлены символами a-z. И исходное, и желаемые основания должны находиться в пределах 2-36

Все функции преобразования систем счисления являются функциями специального назначения, преобразующими числа из одного конкретного основания в другое. Исключением является функция base_convert(), которая принимает произвольные параметры с обозначением начального и результирующего основания.

Обратите внимание на то, что все функции преобразования систем счисления принимают строковые параметры и возвращают строковые значения, но можно использовать десятичные числовые параметры и полагаться на правильное выполнение преобразования типа интерпретатором PHP. Иными словами, варианты вызова DecBin(«1234») и DecBin(1234) приводят к получению одинакового результата.

Экспоненты и логарифмы

Язык PHP включает стандартные экспоненциальные и логарифмические функции двух разноввдностей — для работы по основанию 10 и основанию е (которые приведены в таблице).

Экспоненциальные функции

Функция Описание
pow() Принимает два числовых параметра и возвращает первый параметр, возведенный в степень, равную второму параметру. Значение выражения pow($х, $у) равно xy
exp() Принимает единственный параметр и возводит число e в степень, равную этому показателю степени. Значение выражения exp($х) равно ex
log() Функция натурального логарифма (ln). Принимает единственный параметр и возвращает его логарифм по основанию e
log10() Принимает единственный параметр и возвращает его десятичный логарифм (lg)

В языке PHP предусмотрена функция exp() для возведения числа e в указанную степень, но отсутствует функция с одним параметром, с помощью которой можно было бы возвести в указанную степень число 10. Однако вместо этой функции можно использовать функцию pow() с двумя параметрами, задавая 10 в качестве первого параметра.

Можно убедиться в том, что экспоненциальные и логарифмические функции с одним и тем же основанием являются обратными по отношению друг к другу, проведя проверку идентичности полученных результатов таким образом:

Тригонометрические функции

В языке PHP предусмотрен стандартный набор основных тригонометрических функций, общие сведения о которых приведены в таблице:

Тригонометрические функции

Функция Описание
pi() Не принимает параметров и возвращает приближенное значение числа π (3.1415926535898). Может использоваться как взаимозаменяемая с константой M_PI
sin() Принимает числовой параметр в радианах и возвращает синус параметра в виде числа с плавающей точкой двойной точности
cos() Принимает числовой параметр в радианах и возвращает косинус параметра в виде числа с плавающей точкой двойной точности
tan() Принимает числовой параметр в радианах и возвращает тангенс параметра в виде числа с плавающей точкой двойной точности
asin() Принимает числовой параметр и возвращает арксинус параметра в радианах. Входные данные должны находиться в пределах от -1 до 1 (получение функцией входных данных, выходящих за пределы этого диапазона, приводит к получению результата NAN). Результаты находятся в диапазоне от -π/2 до π/2
acos() Принимает числовой параметр и возвращает арккосинус параметра в радианах. Входные данные должны находиться в пределах от -1 до 1 (получение функцией входных данных, выходящих за пределы этого диапазона, приводит к получению результата NAN. Результаты находятся в диапазоне от 0 до π
atan() Принимает числовой параметр и возвращает арктангенс параметра в радианах. Результаты находятся в диапазоне от -π/2 до π/2

Ниже показан пример составления таблицы вычисления тригонометрических функций для «стандартных» углов:

Получение очень больших (но не бесконечных) значений тангенса обусловлено тем, что теоретически знаменатели должны быть равными нулю, но в действительности немного отличаются от нуля из-за ошибок округления.

Вычисление с произвольной точностью (с использованием функций BC)

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

Безусловно, точные диапазоны значений данных этих типов могут зависеть от архитектуры серверного компьютера, но значения целых чисел обычно могут находиться в пределах от -231-1 до 231-1, а числа с плавающей точкой двойной точности могут представлять числа с точностью примерно от 13 до 14 десятичных цифр. С другой стороны, для решения задач, требующих использования более широкого диапазона представления или большей точности, в языке PHP предусмотрены математические функции с произвольной точностью (называемые также функциями BC — по имени вычислительной утилиты с произвольной точностью, основанной на средствах системы Unix).

Может оказаться, что функции с произвольной точностью не включены в компиляцию интерпретатора PHP, особенно если пользователь проводил такую компиляцию самостоятельно, поскольку для этого пользователь должен был знать, что на этапе настройки конфигурации необходимо включить в состав параметров флажок —enable-bcmath. Чтобы проверить, имеется ли доступ к указанным функциям, попытайтесь вычислить выражение bcadd(«1″,»1»). Если будет получено сообщение об ошибке, в котором говорится о неопределенной функции, то вам потребуется снова настроить конфигурацию и перекомпилировать интерпретатор PHP.

В функциях BC в качестве параметров и возвращаемых значений используются не числовые типы с представлением фиксированной длины, а строки. Поскольку в языке PHP длина строк ограничивается только объемом доступной памяти, числа, используемые в расчетах, могут иметь любую длину. Основополагающие вычисления осуществляются в десятичном виде и во многом напоминают те, которые может выполнить и человек с помощью карандаша и бумаги (если сможет действовать очень быстро и запасется терпением). Функции BC, оперирующие целыми числами, действуют точно и позволяют использовать столько цифр, сколько потребуется, а в функциях, оперирующих числами с плавающей точкой, вычисления выполняются с точностью до заданного количества десятичных разрядов. Общие сведения о функциях BC приведены в таблице ниже:

Математические функции с произвольной точностью (функции BC)

Функция Описание
bcadd() Принимает два строковых параметра, представляющих числа, и необязательный целочисленный параметр с обозначением масштабного множителя. Возвращает сумму первых двух параметров в виде строки, с количеством десятичных позиций в результате, определяемом параметром с обозначением масштабного множителя. Если параметр с обозначением масштабного множителя не задан, то используется заданный по умолчанию масштабный множитель
bcsub() Аналогична bcadd(), за исключением того, что возвращает результат вычитания второго параметра от первого
bcmui() Аналогична bcadd(), за исключением того, что возвращает результат умножения своих параметров
bcdiv() Аналогична bcadd(), за исключением того, что возвращает результат деления первого параметра на второй
bcmod() Возвращает модуль (остаток) от деления первого параметра на второй. Поскольку возвращаемое значение относится к целочисленному типу, функция не принимает параметр с обозначением масштабного множителя
bcpow() Возводит первый параметр в степень, указанную вторым параметром. Количество десятичных позиций в результате определяется масштабным множителем, если он задан
bcsqrt() Возвращает квадратный корень параметра с количеством десятичных позиций, которое определяется значением необязательного масштабного множителя
bcscale() Устанавливает заданный по умолчанию масштабный множитель для последующих вызовов функции BC

Большинство из этих функций принимают в качестве последнего параметра необязательный масштабный множитель (целое число), который определяет, какое количество десятичных позиции должно быть в результате. Если такой параметр не задан, то в качестве масштабного множителя используется заданный по умолчанию масштабный множитель, который, в свою очередь, может быть установлен путем вызова функции bcscale(). Заданная по умолчанию величина для этого заданного по умолчанию значения (т.е. величина, которая используется, если в сценарии не применяется вызов функции bcscale()) может быть также задана в файле инициализации php.ini.

Ниже приведен пример использования функции с произвольной точностью для точного выполнения целочисленных арифметических операций. Выполнение следующего кода:

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

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

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

В первую очередь рассмотрим основные математические константы, которые разработчики встроили в язык php.

Это число PI и число Е;

Теперь перейдём к изучению самих функций.

Модуль числа в php находится через функцию abs.

Для округления чисел в php, есть функция round

В данном случае мы округляем до целого числа в сторону большего остатка. Полученный результат:

Также можно задать параметр для округления остатка

Указав число, вы показываете, до какого числа после запятой будет округляться число:

Также есть функции, которые округляют до большего целого ceil или до меньшего floor

Тут всё просто. К примеру эти функции могут понадобится при создании навигации для сайта.

Генерация случайного числа


Для генерации случайного числа в php есть функция mt_rand, которая генерирует случайное число в нужном диапазоне.

И при каждом обновлении страницы, мы будем получать случайные числа в наших диапазонах.

Поиск максимального и минимального числа

Есть функция, которая из заданных чисел или переменных найдёт нам максимальное или минимальное значение, за это в php отвечают функции min и max.

Функция выведет нам нужное значение.

Для нахождения котангенса применим математическую формулу.

Обратите мы находим результаты от радианов, чтобы из радианов получить градусы, применим следующие:

Первое знакомство с функциями php для начинающих

Значение функций для программирования неоценимо. Благодаря им появилась возможность повторного использования кода. Нужно лишь разместить вызов функции в конкретном месте программы, и передать ей новые значения аргументов. Не являются исключением из правил и функции php .

Синтаксис функций в php

В каждом языке программирования работа с функциями имеет свои « тонкости ». Рассмотрим их особенности в php :

  • Определение функции выглядит следующим образом:

Параметры могут быть пустыми. Имя указывается после обязательного слова function . При этом имена функций являются независимыми от регистра.

Это значит, что при объявлении function Main() и function main() подразумевается одна и та же функция. А при вызове одной из них интерпретатор выдаст сообщение об ошибке:

  • В теле функции может находиться любой код. В том числе и определение другой функции. При этом определение может быть расположено в любом месте кода. То есть, в php имеет значение лишь расположение вызова функции;
  • Функция может возвращать лишь одно значение, или ничего. Возврат более одного значения не возможен. При этом тип возвращаемого значения может быть любым.

В результате будет возвращена 1.

Множественную передачу значений можно осуществить при использовании в php массива в функции.
Пример:

В теле функции задаются значения переменным x и y . Затем с помощью встроенной функции array() они записываются в массив.

Значение элементам массива задается при вызове функции с помощь list() .

  • Вызов функции php имеет синтаксис:

Функция вернет 3.

Анонимные функции в php

Анонимные функции в php появились недавно, начиная с версии 5.3 . В более ранних версиях языка их поддержка не была реализована.

Анонимной называется функция, определение которой происходит без указания имени. То есть ее определение происходит в месте вызова. При создании анонимной функции к ней обращаются напрямую, или переменной присваивается ссылка на нее.

Рассмотрим на примерах:

Здесь ссылка на анонимную функцию присваивается переменной func1 . Затем переменная x инициализируется значением func1 и выводится с помощью echo() :

В примере автономная функция function ($v) < return $v >2; > вызывается напрямую в месте определения. Она передается в качестве второго аргумента стандартной функции array_filter() .

Функция mail()

Набор стандартных ( встроенных ) функций в php довольно широк. Многие из них реализуют основные возможности веб-сферы.

Одной из таких является функция mail() . Она отправляет сообщение на указанный почтовый ящик. Ее синтаксис:

Описание принимаемых параметров:

  • to –адрес получателя письма. Должен соответствовать стандарту user@example.com ;
  • subject – тема письма;
  • message – отправляемое сообщение. При этом каждая строка сообщения должна вмещать в себя не более 70 символов. Строки разделяются символом перевода строки ( n ).

Если отправка письма происходит непосредственно на SMTP -сервер с машины на основе Windows , то все точки в конце каждой строки будут удалены. Во избежание этого следует заменить все одиночные точки на двойные с помощью кода:

Необязательные параметры функции mail() :

  • additional_headers – вставляется в конце заголовков отправляемого письма. Используется для добавления заголовков.

Пример отправки простого письма:

А вот пример полностью рабочей формы для отправки сообщений:

Несколько основных причин, почему письмо не отправляется:

  • Письмо не содержит дополнительного заголовка From . Он устанавливается с помощью необязательного параметра additional_headers . Также он может быть выключен по умолчанию в конфигурационном файле php.ini . Если заголовок отсутствует в коде, то интерпретатор выдаст следующее сообщение:
  • Используйте только LF (n) . Некоторые агенты на основе Unix автоматические заменяют LF на CRLF (rn) ;
  • При реализации функции mail() на Windows адрес получателя не должен быть такого вида: Something someone@example.com.

Может произойти неправильная интерпретация параметра при передаче его почтовому агенту для отправки.

  • Сбои в отправке писем могут возникнуть при размещении вызова mail() в теле цикла. Функция открывает и закрывает соединение с SMTP -сервером после отправки каждого письма.

Обзор стандартных функций php

В стандартный набор php входит большой комплект функций для работы со строками. Подробно рассмотрим несколько из них:

  • 1) substr() – возвращает часть строки. Синтаксис: string substr(string string, int start[, int length]) , где:
  • string string – заданная строка.
  • int start – задает начало подстроки.
  • int length – количество символов в возвращаемой подстроке.
  • 2) strpos() – возвращает позицию подстроки в заданной строке. С помощью необязательного параметра можно задать точку отсчета для поиска. Синтаксис: string strpos(string haystack, string needle[, int offset])

3) strstr() – возвращает подстроку из строки, начиная с указанного символа. Синтаксис: string
strstr(string haystack, string needle)

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

1. count() – возвращает количество элементов в массиве. Синтаксис: int count(mixed var)

2. reset() – устанавливает указатель массива на первый элемент, возвращает его значение.
Синтаксис: reset(array array)
Пример:

3. sort() – сортирует массив по возрастанию. Функция воспринимает любой массив как список. Синтаксис: void sort(array array [, int sort_flags])

В языке PHP существует много функций для работы с датой и временем. Но функция date () в php является основной. Она возвращает строку, отформатированную согласно установленному шаблону format . Временная метка устанавливается аргументом timestamp . Ее синтаксис: string date ( string $format [, int $timestamp = time() ] )

Более подробно обо всех принимаемых значениях аргументов функции можно узнать из документации к php.

Несколько стандартных математических функций:

1. bindec() – преобразует число двоичной системы исчисления в десятичное. Синтаксис: bindec ( string $binary_string )

2. floor() – округляет число до меньшего. Синтаксис: float floor (float $value )

3. rand() –генерирует случайное число из указанного диапазона. Синтаксис: int rand ( int $min , int $max )

Одна ложка меда из бочки

Описанные функции php всего лишь ложка меда из огромной бочки волшебства этого языка. Самые вкусные функции распробуйте самостоятельно.

PHP — Функции

Дата публикации: 2020-10-20

От автора: функции PHP похожи на функции других языков программирования. Функция представляет собой фрагмент кода, который принимает другой код в качестве параметра, выполняет определенную обработку и возвращает значение.

Мы уже рассмотрели много таких функций, например fopen() и fread() и т.д. Это встроенные функции, но PHP предоставляет нам возможность создавать собственные функции. Вы должны четко понимать, что существуют два отдельных аспекта:

Создание функции PHP

Вызов функции PHP

На самом деле вам вряд понадобиться создавать свою собственную функцию, потому что в PHP уже доступны тысячи функций из библиотек, созданных для разных сфер применения, и вам просто нужно вызвать нужную функцию. Полный перечень функций вы можете найти в Справочнике по функциям PHP.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Создание функции PHP

Собственную PHP-функцию создать очень просто. Предположим, вы хотите создать функцию PHP, которая просто выводит в браузере короткое сообщение, когда вы ее вызываете. В следующем примере мы создаем функцию writeMessage(), а затем вызывает ее сразу после создания.

Обратите внимание, что при создании функции ее имя должно начинаться с ключевого слова function, и весь код PHP должен быть помещен внутри скобок < >, как в приведенном ниже примере:

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

abs

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

Синтаксис:

mixed abs(mixed $number)


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

$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.45); // $x=5

ceil

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

Синтаксис:

int ceil(float $number)

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

floor

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

Синтаксис:

int floor(float $number)

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

Похожие главы из других книг

2.1. Предыстория. Математические основы

2.1. Предыстория. Математические основы Представление различных понятий окружающего нас мира при помощи графической символики уходит своими истоками в глубокую древность. В качестве примеров можно привести условные обозначения знаков Зодиака, магические символы

Функции

Математические формулы для женщин

Математические формулы для женщин Авторы: Скамейкин, Алексей, Яблоков, Сергей Две тысячи лет мужчины провели впустую. Вместо того чтобы написать формулу красоты и здоровья или хотя бы соорудить внятное определение красоты, они ходили вокруг да около, не в силах

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

Математические функции Создайте чистую таблицу. Эту таблицу мы будем использовать для примеров использования функций.Наиболее часто используемая функция в математических расчетах – это КОРЕНЬ.1. Выделите ячейку R2C2. В эту ячейку мы будем вставлять функцию.2. Нажмите

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

Математические функции Имеющиеся в VBScript функции, предназначенные для математических вычислений, описаны в табл. П2.14.Таблица П2.14. Математические функции Функция Описание Abs(x) Возвращает абсолютное значение числа х Atn(x) Возвращает арктангенс числа х Cos(x) Возвращает

4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации

4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел «4.5.2. Функции Geometry» обсуждает несколько функций, которые создают новые конфигурации из

8.1.9. Массивы как математические множества

8.1.9. Массивы как математические множества В большинстве языков множества напрямую не реализованы (Pascal составляет исключение). Но массивы в Ruby обладают некоторыми свойствами, которые позволяют использовать их как множества. В данном разделе мы рассмотрим эти свойства и

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

Математические функции Функции округления absВозвращает модуль числа.Синтаксис:mixed abs(mixed $number)Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.$x = abs(-4); // $x=4$x = abs(-7.45); // $x=7.45roundОкругление дробного числа до

Функции в PHP

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

Математические функции Функция Краткое описание abs нахождение абсолютного значения выражения типа int acos вычисление арккосинуса asin вычисление арксинуса atan вычисление арктангенса х atan2 вычисление арктангенса от у/х cabs нахождение абсолютного значения

Математические формулы

Математические формулы Кирпичи просто создавать, использовать, они понятны и просты, но на протяжении столетий возникло и сформировалось более тонкое понимание систем упорядочения. Эти открытия и нововведения развивали наше понимание сеток. Обращаясь к математике,

4.1. Математические формулы

4.1. Математические формулы В текстовом редакторе Word существует специальный инструмент для работы с формулами – редактор формул. С его помощью можно создавать сложные объекты, выбирая символы с панели инструментов и задавая переменные и числа. При этом размер шрифтов,

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

Условная инструкция IF

Цикл WHILE с предусловием

Цикл WHILE с постусловием

Цикл FOR

Пример цикла for :

Результат:
1 + 0 = 1
2 + 1 = 3
3 + 2 = 5
4 + 3 = 7

Инструкция SWITCH

Если вариантов значения условия много, и последовательность вложенных инструкций IF получается слишком громоздкой, удобна инструкция SWITCH :

Оператор break прекращает выполнение оператора switch в случае найденного соответствия; если его не поставить, будут выполняться все последующие проверки case .

Например, следующий цикл прервется на второй проверке и установит значение monthName = ‘февраль’

Инструкции BREAK и CONTINUE

Применяются в циклах всех типов. Инструкция break завершает выполнение всего цикла, а continue — очередной итерации.

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

Эти math-функции обрабатывают только значения в диапазоне типов от integer до float на вашем компьютере (в данный момент это соответствует C-типам от long до double). Если вам нужно работать с б́ольшими числами, ознакомьтесь с math-функциями произвольной точности.

Следующие значения определены как константы в PHP расширением math:

Таблица 1. Math-константы

Константа Значение Описание
M_PI 3.14159265358979323846 Pi
M_E 2.7182818284590452354 e
M_LOG2E 1.4426950408889634074 log_2 e
M_LOG10E 0.43429448190325182765 log_10 e
M_LN2 0.69314718055994530942 log_e 2
M_LN10 2.30258509299404568402 log_e 10
M_PI_2 1.57079632679489661923 pi/2
M_PI_4 0.78539816339744830962 pi/4
M_1_PI 0.31830988618379067154 1/pi
M_2_PI 0.63661977236758134308 2/pi
M_SQRTPI 1.77245385090551602729 sqrt(pi) [4.0.2]
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)
M_SQRT2 1.41421356237309504880 sqrt(2)
M_SQRT3 1.73205080756887729352 sqrt(3) [4.0.2]
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
M_LNPI 1.14472988584940017414 log_e(pi) [4.0.2]
M_EULER 0.57721566490153286061 константа Эйлера [4.0.2]

Только M_PI доступна в версиях до PHP 4.0.0. Все другие константы доступны, начиная с PHP 4.0.0. Константы, помеченные [4.0.2] были введены в PHP 4.0.2.

Содержание abs — абсолютное значение acos — арккосинус acosh — инверсный гиперболический косинус asin — арксинус asinh — инверсный гиперболический синус atan2 — арктангенс двух переменных atan — арктангенс atanh — инверсный гиперболический тангенс base_convert — конвертирует число между произвольными базами bindec — двоичное в 10-ричное ceil — округление дробей в сторону увеличения cos — косинус cosh — гиперболический косинус decbin — десятеричное в двоичное dechex — 10-ричное в 16-ричное decoct — 10-ричное в 8-ричное deg2rad — конвертирует число в градусах в эквивалент в радианах exp — e в степени . expm1 — возвращает exp(число) — 1, вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю floor — округляет дробь в сторону уменьшения getrandmax — показывает наибольшее возможное случайное значение hexdec — 16-ричное в 10-ричное hypot — возвращает sqrt( num1*num1 + num2*num2) is_finite — is_infinite — is_nan — lcg_value — комбинированный линеарный конгруэнтный генератор log10 — логарифм с базой 10 log1p — возвращает log(1 + число), вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю log — натуральный логарифм max — находит наибольшее значение min — находит наименьшее значение mt_getrandmax — показывает наибольшее возможное случайное значение mt_rand — генерирует наилучшее случайное значение mt_srand — запускает генератор наилучшего случайного числа number_format — форматирует число с группировкой по тысячам octdec — 8-ричное в 10-ричное pi — значение pi pow — экспоненциальное выражение rad2deg — конвертирует число в радианах в эквивалент в градусах rand — генерирует случайное число round — округляет число с плавающей точкой/float sin — синус sinh — гиперболический синус sqrt — квадратный корень srand — запускает генератор наилучшего случайного числа tan — тангенс tanh — гиперболический тангенс


Назад Оглавление Вперёд
mailparse_uudecode_all Вверх abs

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Руководство по PHP русский перевод

25.02.2008 (последний раз редактировалось 01.02.2012)
сайт: http://ru2.php.net/download-docs.php
условия использования: бесплатно

скачать руководство PHP, русский (html) В формате html. Дата редакции 26-01-2012 (много html файлов)
скачать руководство PHP, русский (html) В формате html. Дата редакции 26-01-2012 (Одним большим файлом)
скачать руководство PHP, русский (chm) В формате chm. Дата редакции 26-01-2012 (с комментариями пользователей на английском)

Официальный мануал по php.
Освещает 4 и 5 версии php.
Это руководство состоит, главным образом, из справочника функций, а также содержит справочник языка, комментарии к наиболее важным из отличительных особенностей PHP, и другие дополнительные сведения.
онлайн версия справочника по функциям php

Содержание руководства:

Авторские права
Руководство по PHP
Предисловие
Приступая к работе
Введение
Простой учебник
Установка и настройка
Общие инструкции по установке
Установка на Unix системы
Installation on Mac OS X
Installation on Windows systems
FastCGI Process Manager (FPM)
Установка расширений PECL
Проблемы?
Runtime Configuration
Справочник языка
Основы синтаксиса
Типы
Переменные
Константы
Выражения
Операторы
Управляющие конструкции
Функции
Классы и объекты
Namespaces
Исключения
Ссылки. Разъяснения
Предопределённые переменные
Предопределённые исключения
Predefined Interfaces
Context options and parameters
Supported Protocols and Wrappers
Безопасность
Вступление
Общие рассуждения
Если PHP установлен как CGI
Если PHP установлен как модуль Apache
Безопасность файловой системы
Безопасность баз данных
Сообщения об ошибках
Использование глобальных переменных (Register_Globals)
Данные, введенные пользователем
Волшебные кавычки
Сокрытие PHP
Необходимость обновлений
Отличительные особенности
HTTP-аутентификация в PHP
Cookies
Sessions
Работа с XForms
Загрузка файлов на сервер
Работа с удаленными файлами
Работа с соединениями
Постоянные соединения с базами данных
Безопасный режим
Использование PHP в командной строке
Garbage Collection
Справочник функций
Изменение поведения PHP
Обработка аудио форматов
Службы аутентификации
Расширения по работе с датой и временем
Расширения для работы с командной строкой
Расширения сжатия и архивации
Обработка кредитных карт
Криптографические расширения
Расширения для работы с базами данных
Расширения для работы с файловой системой
Поддержка человеческих языков и кодировок
Обработка и генерация изображений
Расширения по работе с почтой
Математические расширенияMathematical
Генерация нетекстовых MIME форматов
Расширения для управления процессами программ
Другие базовые расширения
Другие службы
Расширения для работы с поисковыми системами
Расширения для работы с серверами
Расширения для работы с сессиями
Обработка текста
Расширения, относящиеся к переменным и типам
Веб-сервисы
Расширения только для Windows
Обработка XML
Ядро PHP: Руководство хакера по Zend Engine
Preface
The «counter» Extension — A Continuing Example
The PHP 5 build system
Extension structure
Memory management
Working with variables
Writing functions
Working with classes and objects
Working with resources
Working with INI settings
Working with streams
PDO Driver How-To
Extension FAQs
Zend Engine 2 API reference
Zend Engine 2 opcode list
Zend Engine 1
ЧАВО — ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них
Общая информация
Списки рассылки
Получение PHP
Вопросы по Базам данных
Установка
Проблемы Сборки
Использование PHP
PHP и HTML
PHP и COM
PHP и другие языки
Переход из PHP 4 в PHP 5
Разные вопросы
Appendices
История PHP и смежных проектов
Migrating from PHP 5.2.x to PHP 5.3.x
Migrating from PHP 5.1.x to PHP 5.2.x
Migrating from PHP 5.0.x to PHP 5.1.x
Миграция с PHP 4 на PHP 5
Classes and Objects (PHP 4)
Отладка в PHP
Configure options
Директивы php.ini
Список/классификация расширений
Список псевдонимов функций
List of Reserved Words
List of Resource Types
Список доступных фильтров
Список поддерживаемых транспортных протоколов
Таблица сравнения типов в PHP
List of Parser Tokens
Userland Naming Guide
Об этом руководстве
Creative Commons Attribution 3.0
Список функций

Комментарии

05.09.2009 ljubchyk
Документация по РНР, а називается html)

26.01.2010 zohen
Посмотрим что ето замануал)))

31.03.2010 Dikan
Качаю вот, говорят хорошая книга, по изучаю.

01.04.2010 Mistic
вобщем то очень доступно описано.
сам не зная не одного языка программирования в течении двух недель освоил php именно по этой книге(это было пару лет назад).
это классический мануал по php

13.07.2010 LuMeN
Надеюсь поможет поверю на слова

24.12.2010 Nosirjon
Скачаю начал изучачть html а потом php

21.04.2011 babay
Если это «PHP русский», то я — Папа Римский.

25.04.2011 виктор
Для Папы Римского, ты прочитал два слова из всего, что тут написано?
Это руководство по PHP на русском языке.
Никто тут даже не пытался сказать, что PHP русский.

Админ, поставь в названии запятую «Руководство по PHP, русский» или «Руководство по PHP на русском».

18.05.2011 KaReN
Ну попробую, до этого ,было object pascal в среде дельфи, щсейчас решил в инете прробовал html, хочу попробовать нечто большее

01.06.2011 Денис
Да не слушайте вы ни кого, нормальный такое руководство, конечно не, то что нужно было мне, но тем кто хочет его освоить самое оно!
P.S. мне нужно было описание функций и волей судьбы выплыл сюда.

02.06.2011 виктор
Денис, вот как раз в этом мануале и есть описание функций.
Вобщем то самое основное в этом справочнике описание функций

03.12.2011 Александр
Парни, если кто не понимает, что перевод с английского на русский то ему запятая не поможет :-)

08.12.2011 я php
Да да, даже можно точку с запятой поставить, все равно не поможет. ))))

24.01.2012 lili
этому человеку и php не поможет..

30.01.2012 ed-210
Кто-нибудь может сказать, почему переведенный вариант руководства за 18-02-2011 всё-равно содержит английские статьи? Есть где-то полностью русский мануал?
P.S. Ибо так лень напрягать мозг, для того чтобы вникнуть во вражескую терминологию.

01.02.2012 админ
справочники обновлены

11.04.2012 Олег
Спасибо за мануал!

23.04.2012 Станислав
Достаточный материал для полного изучения языка PHP. Ну и конечно же этот язык хоть и интерпретируемый, но все же его семантика как и его конструкции, основана на фундаменте стандарта Cи, что облегчает изучение последнего. Спасибо администратору за компиляцию документа в CHM, очень удобно пользоваться.

16.10.2015 Боря
Прочитал множество книг и документаций по PHP. Ни одна не удобна так как этот справочник от разработчиков и не объясняет этот языка лучше этого справочника, так точно и последовательно. Рекомендую всем! Можно сказать что это полный справочник по языку PHP. Удачи всем !

PHP скрипты

Apache

PHP Скрипты

Для Дизайна Сайта

У вас будет красивая сумка Киев такую сумку никогда не видел.

Поиск по Сайту

Самоучитель. Книги.

5.3: Арифметические операторы в PHP

Арифметические операторы выполняют операции, которые соответствуют тем, что существуют в математике. Например, оператор сложения (+) находит сумму двух операндов, а оператор вычитания (-) — разность. Перечислим все арифметические операторы РНР:

сложения $а + $b;
вычитания $а — $b;
умножения $а * $b;
деления $а / $b;
остаток от деления $а % $b.

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

Илон Маск рекомендует:  Sql сервер postgresql
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL