ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

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

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

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

  • abs(число) — возвращает модуль(абсолютное значение) числа;
  • <?php
    $a=abs(1.25); //возвращает 1.25
    $a1=abs(24.2); //возвращает 24.2
    $a2=abs(14.346); //возвращает 14.346
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • acos(число) — возвращает арккосинус числа;
  • asin(число) — возвращает арксинус числа;
  • atan(число) — возвращает арктангес числа;
  • atan2(x,y) — возвращает угол в полярных координатах точки;
  • сeil(число) — округление числа вверх до ближайшего целого;
  • <?php
    $a=abs(1.25); //возвращает 1.25
    $a1=abs(24.2); //возвращает 24.2
    $a2=abs(14.346); //возвращает 14.346
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • cos(число) — возвращает сосинус числа(число задается в радианах);
  • <?php
    $a= cos(0); //возвращает 1
    echo $a ;
    ?>
  • exp(число) — возвращает число е в степени число;
  • <?php
    $a= exp(0); //возвращает 1
    $a1= exp(2); //возвращает 7.38905609893
    echo "$a <br> $a1" ;
    ?>
  • floor(число) — возвращает округление числа вниз до ближайшего целого;
  • <?php
    $a=floor(1.25); //возвращает 1
    $a1=floor(24.2); //возвращает 24
    $a2=floor(0.346); //возвращает 0
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • ftod(число1, число2) — возвращает дробный остаток от деления первого числа на второе. Этот остаток определяется как число, удовлетворяющее уравнению число1 = i x число2 + r, где i — некоторое целое. Остаток r имеет такой же знак, что и число1.
  • <?php
    $a=fmod(4,2); //возвращает 0
    $a1=fmod(3,2); //возвращает 1
    $a2=fmod(8,3); //возвращает 2
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • log(число) — возвращает натуральный логарифм числа;
  • <?php
    $a=log(4); //возвращает 1.38629436112
    $a1=log(10); //возвращает 2.30258509299
    $a2=log(50); //возвращает 3.91202300543
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • log10(число) — возвращает десятичный логарифм числа;
  • <?php
    $a=log10(4); //возвращает 0.602059991328
    $a1=log10(10); //возвращает 1
    $a2=log10(50); //возвращает 1.69897000434
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • max(число1, число2, . . . , числоN) — возвращает большее из чисел в списке;
  • <?php
    $a=max(1, 2, 467, 46, 88); //возвращает 467
    echo $a ;
    ?>
  • max(массив_чисел) — возвращает большее из чисел в массиве;
  • <?php
    $a= array(1, 2, 467, 46, 88);
    echo max($a) ; //возвращает 467
    ?>
  • min(число1, число2, . . . , числоN) — возвращает меньшее из чисел в списке;
  • <?php
    $a=min(1, 2, 467, 46, 88); //возвращает 1
    echo $a ;
    ?>
  • min(массив_чисел) — возвращает меньшее из чисел в массиве;
  • <?php
    $a= array(1, 2, 467, 46, 88);
    echo min($a) ; //возвращает 1
    ?>
  • pow(число1, число2) — возвращает число1 в степени число2;
  • <?php
    $a=pow(3, 2); //возвращает 9
    $a1=pow(4,3); //возвращает 64
    $a2=pow(2,4); //возвращает 16
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • rand(число1, число2)
  • — возвращает случайное число между заданными числами;
    <?php
    $a= rand(1, 88); //возвращает от 1 до 88
    echo ($a) ;
    ?>
  • round(число) — возвращает округление числа до ближайшего целого;
  • <?php
    $a=round(0.25); //возвращает 0
    $a1=round(3.78); //возвращает 4
    $a2=round(34.5); //возвращает 35
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • sin(число) — возвращает синус числа;
  • sqrt(число) — возвращает квадратный корень из числа;
  • <?php
    $a= sqrt(16); //возвращает 4
    $a1=sqrt(144); //возвращает 12
    $a2=sqrt(98); //возвращает 9.89949493661
    echo "$a <br> $a1 <br> $a2" ;
    ?>
  • srand(число) — устанавливает начальное значение генератора случайных чисел в указанное число; если параметр не указан, то начальное число выбирается случайно.
  • tan(число) — возвращает тангес числа.

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

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

Таблица. Математические константы PHP
Имя константы Значение Описание
M_PI 3,14159265358979323846 Число
M_E 2,7182818284590452354 e
M_LOG2E 1,4426950408889634074 log2(e)
M_LOG10E 0,43429448190325182765 lg(e)
M_LN2 0,69314718055994530942 ln(2)
M_LN10 2,30258509299404568402 ln(10)
M_PI_2 1,57079632679489661923 /2
M_PI_4 0,78539816339744830962 /4
M_1_PI 0,31830988618379067154 1/
M_2_PI 0,63661977236758134308 2/
M_SQRTPI 1,77245385090551602729 sqrt()
M_2_SQRTPI 1,12837916709551257390 2/sqrt()
M_SQRT2 1,41421356237309504880 sqrt(2)
M_SQRT3 1,73205080756887729352 sqrt(3)
M_SQRT1_2 0,70710678118654752440 1/sqrt(2)
M_LNPI 1,14472988584940017414 ln(p)
M_EULER 0,57721566490153286061 Постоянная Эйлера

Представление чисел в системах счисления

В РНР числа можно представлять в системах с различными основаниями: 10(десятичной), 8(восьмеричной), 2(двоичной). Наиболее привычной для нас является десятичная форма представления чисел от 0 до 9. В компьютерных технологиях часто используются и другие системы: восьмеричная (цифры от 0 до 7), шестнадцатеричная( цифры 0, . . . , 9, а, b, . . . ,f) и двоичная (цифры 0 и 1). Например, десятичное число 17 в восьмеричной представляется как 15, в шестнадцатеричной как b0, а в двоичной как 10001.

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

  • base_convert(строка1, основание1, основание2) — преобразует строку строка1, содержащую число в системе счисления по основанию основание1, в строку с числом по основанию основание2 и возвращает строку, содержащую результат этого преобразования.
  • Пример:

    <?php
    $a=base_convert("14",10,16); //возвращает е
    $a1=base_convert("14",10,8); //возвращает 16
    $a2=base_convert("14",10,2); //возвращает 1110
    $a3=base_convert("ff",16,10); //возвращает 255
    $a4=base_convert("142",2,10); //возвращает 1
    echo "$a <br> $a1 <br> $a2 <br> $a3 <br> $a4";
    ?>
  • dechex(целое_число) — возвращает строку, содержащую указанное целое десятичное число, шестнадцатеричном виде.
  • Пример:

    <?php
    $a=dechex(6); //возвращает 6
    $a1=dechex(250); //возвращает fa
    $a2=dechex(255); //возвращает ff
    echo "$a <br> $a1 <br> $a2 ";
    ?>
  • hexdec(строка) — возвращает десятичное число, соответствующее указанному в строковом параметре шестнадцатеричному числу.
  • Пример:

    <?php
    $a=hexdec("b"); //возвращает 11
    $a1=hexdec("fc"); //возвращает 252
    $a2=hexdec("cc"); //возвращает 204
    echo "$a <br> $a1 <br> $a2 ";
    ?>
  • decbin(целое_число) — возвращает строку, содержащую указанное целое десятичное число, в двоичном виде.
  • Пример:

    <?php
    $a=decbin(4);//возвращает 100
    $a1=decbin(200); //возвращает 11001000
    $a2=decbin(255); //возвращает 11111111
    echo "$a <br> $a1 <br> $a2 ";
    ?>
  • bindec(строка) — возвращает десятичное число, соответствующее указанному в строковом параметре двоичному числу.
  • Пример:

    <?php
    $a=bindec(10);//возвращает 2
    $a1=bindec(110); //возвращает 6
    $a2=bindec(001); //возвращает 1
    echo "$a <br> $a1 <br> $a2 ";
    ?>
  • decoct(целое_число) — возвращает строку, содержащую указанное целое десятичное число, в восьмеричном виде.
  • Пример:

    <?php
    $a=decoct(9);//возвращает 11
    $a1=decoct(57); //возвращает 71
    $a2=decoct(355); //возвращает 543
    echo "$a <br> $a1 <br> $a2 ";
    ?>
  • octdec(строка) — возвращает десятичное число, соответствующее указанному в строковом параметре восьмеричному числу.
  • Пример:

    <?php
    $a=octdec("07");//возвращает 7
    $a1=octdec("57"); //возвращает 47
    $a2=octdec("355"); //возвращает 237
    echo "$a <br> $a1 <br> $a2 ";
    ?>

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

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

    Пример:

    <?php
    $a=decbin(4)+decbin(200)+decbin(255);//возвращает 22112211
    $a1=dechex(6)+dechex(250)+dechex(255); //возвращает 6
    $a2=bindec(001)+bindec(110)+bindec(10); //возвращает 9
    echo "$a <br> $a1 <br> $a2 ";
    ?>

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

Числа в РНР храняться и выводятся в наиболее эффективном формате. Например, если переменная имеет значение 16.00, оно будет отражено на экране как 16. В приложениях можно отобразить число в некотором определенном формате, например, разделить группы разрядов пробелом, отобразить два знака после разделительной точки для представления денежных сумм и т.д. Мы уже рассматривали функции форматирования строки printf() и sprintf(). А теперь остановимся на функции форматирования чисел:

number_format(число, точность, разделитель1, разделитель2)

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

  • число — число(float), которое требуется отформатировать; если следующие параметры не используются, то число будет представлено без дробной части(с округлением до ближайшего целого) и запятыми в качестве разделителя групп по три разряда;
  • точность — целое число, указывающее, сколько знаков в дробной части числа следует показать(по умолчанию 0); этот параметр обязателен, если будут использоваться параметры разделитель1 и разделитель2; если указывается меньшее количество знаков, чем есть в числе, то происходит округление в большую сторону;
  • разделитель1 — строка с символом, который используется для разделения целой и дробной частей числа(по умолчанию — точка); этот параметр обязателен, если будет использоваться параметр разделитель2;
  • разделитель2 — строка с символом, который используется для разделения групп по три разряда в целой части числа(по умолчанию —запятая); этот параметр обязателен, если используется разделитель1.

Такким образом, функция number_format() может принимать один, два или четыре параметра, но не три.

Пример:

<?php
$a=number_format(1234567890); //выводит 1,234,567,890
$a1=number_format(1234.567, 3); //выводит 1,234.567
$a2=number_format(1234.567, 3, ",", " "); //выводит 1 234,567
$a3=number_format(1234.567, 3, "рублей", " "); //выводит 1 234р567
echo "$a <br> $a1 <br> $a2 <br> $a3" ;
?>

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

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

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