Целые числа | Руководство по PHP |

Синтаксис

Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления, с необязательным предшествующим знаком (- или +).

Двоичная запись integer доступна начиная с PHP 5.4.0.

Для записи в восьмеричной системе счисления, необходимо поставить пред числом 0 (ноль). Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом 0x. Для записи в двоичной системе счисления, необходимо поставить перед числом 0b

Пример #1 Целые числа

Формально, структуру целых чисел можно записать так:

Размер integer зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое). 64-битные платформы обычно имеют максимальное значение около 9E18, кроме Windows, которая всегда 32-битная. PHP не поддерживает беззнаковые целые ( integer ). С версии PHP 4.4.0 и PHP 5.0.5 размер integer может быть определен с помощью константы PHP_INT_SIZE , а его максимальное значение — с помощью константы PHP_INT_MAX .

Если в восьмеричном integer будет обнаружена неверная цифра (например, 8 или 9), оставшаяся часть числа будет проигнорирована.

Пример #2 Странности с восьмеричными числами

Переполнение целых чисел

Если PHP обнаружил, что число превышает размер типа integer , он будет интерпретировать его в качестве float . Аналогично, если результат операции лежит за границами типа integer , он будет преобразован в float .

Пример #3 Переполнение целых на 32-битных системах

= 2147483647 ;
var_dump ( $large_number ); // int(2147483647)

$large_number = 2147483648 ;
var_dump ( $large_number ); // float(2147483648)

$million = 1000000 ;
$large_number = 50000 * $million ;
var_dump ( $large_number ); // float(50000000000)
?>

Пример #4 Переполнение целых на 64-битных системах

= 9223372036854775807 ;
var_dump ( $large_number ); // int(9223372036854775807)

$large_number = 9223372036854775808 ;
var_dump ( $large_number ); // float(9.2233720368548E+18)

$million = 1000000 ;
$large_number = 50000000000000 * $million ;
var_dump ( $large_number ); // float(5.0E+19)
?>

В PHP не существует оператора деления целых чисел. Результатом 1/2 будет float 0.5. Если привести значение к integer , оно будет округлено вниз. Для большего контроля над округлением используйте функцию round() .

Преобразование в целое

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

Если resource преобразуется в integer , то результатом будет уникальный номер ресурса, привязанный к resource во время исполнения PHP программы.

Из булевого типа

FALSE преобразуется в 0 (ноль), а TRUE — в 1 (единицу).

Из чисел с плавающей точкой

При преобразовании из float в integer , число будет округлено в сторону нуля.

Если число с плавающей точкой превышает размеры integer (обычно +/- 2.15e+9 = 2^31 на 32-битных системах и +/- 9.22e+18 = 2^63 на 64-битных системах, кроме Windows), результат будет неопределенным, так как float не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Никогда не приводите неизвестную дробь к integer , так как это иногда может дать неожиданные результаты.

Полезные PHP коды — для новичков

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

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

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

Короткая запись операторов присваивания

Когда нужно что-то прибавить, отнять или объединить, то для краткости можно использовать сокращения в операторе = — операторе присваивания:

Время выполнения PHP скрипта

Замерить скорость выполнения всего PHP кода или какой-то отдельной его части, можно с помощью встроенной в PHP функции microtime(true) . Функция вернет UNIX штамп времени в микросекундах. Параметр true «говорит» функции вернуть число, а не строку, чтобы можно было потом просто отнять одно число от другого.

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

Округление дробных чисел

Округление до целых

Чтобы округлить число в php существует несколько функций:

round($num) — округляет число в большую или меньшую сторону в зависимости от значения дробной части. Если дробная часть больше или равна пяти, то округлит в большую сторону, иначе в меньшую.

ceil($num) — независимо от дробной части, округляет в большую сторону.

  • floor($num) — независимо от дробной части, округляет в меньшую сторону.
  • Округление до дробных

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

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

    Целая часть и остаток от деления чисел

    Чтобы получить целую часть от деления можно воспользоваться функцией intval() или префиксом (int) .

    Чтобы получить остаток от деления можно воспользоваться оператором % :

    Четное число или нет — проверка в PHP (остаток от деления)

    Чтобы узнать четное число или нет, нужно разделить его на 2 и проверить нет ли остатка. А для определения остатка от деления используется арифметический оператор — % .

    Числа кратные к N или каждый N-ый блок в цикле

    Нужно разделить число на число и если остатка нет, то первое число делиться нацело на второе, а значит кратное.

    Где применить эту кратность?

    Допустим, есть цикл записей и нужно к каждому третьему блоку добавить отдельный css класс. Тут-то кратность нам и поможет.

    Форматирование чисел (денег) в PHP

    Для удобного восприятия числа или денежные велечины, лучше выводить с разеделением тысячных групп. Например 9864 понятнее смотрится так: 9 864 . Для такого форматирования в PHP есть готовые фукнции:

    number_format( $number, $decimals = 0 ) number_format( $number, $decimals = 0, $dec_point = ‘.’ , $thousands_sep = ‘,’ )

    Форматирует число с разделением групп.

    number (обязательный)
    Число, которое нужно отформатировать.

    decimals
    Сколько знаков после запятой показывать.

    dec_point
    Разделитель для дробной части.

  • thousands_sep
    Разделитель тысяч.
  • Для форматирования с учетом языка сайта в WordPress есть специальная функция number_format_i18n()

    Для вывода денежных величин используйте похожую функцию money_format()

    Как получить ключи или значения ассоциативного PHP массива

    Чтобы получить только ключи или только значения ассоциативного массива можно воспользоваться двумя php функциями: array_keys() и array_values() . Они возвращают простой индексный массив, содержащие все ключи или значения соответственно.

    Это может пригодится когда нужно сделать поиск по ключам массива. В PHP такой встроенной функции нет.

    Создаем массив из диапазона чисел или букв

    Допустим, нужно заполнить пустой массив элементами: числами от 1 до 5 или буквами от a до f .

    На такой случай в php есть функция range( $start, $end, $step = 1 ) . Она принимает два обязательных и один не обязательный параметр. Обязательные, указывают диапазон, из которого будет заполнен массив, а необязательный определяет шаг между элементами.

    Как получить максимальное или минимальное число из массива в PHP

    Для определения максимального и минимального числа в php есть две удобные функции: min() и max() . Они могут принимать любое количество чисел и возвращать минимальное или максимально из них.

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

    Как получить часть строки (подстроку)

    Чтобы получить подстроку можно использовать: substr() , iconv_substr() или mb_substr() .

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

    Однако нужно знать, что скорость их работы в разы ниже: substr() работает с одинаковой скоростью для строки любой длинны. А вот mb_substr() и iconv_substr() работают тем медленнее чем длине строка в них указывается. В среднем они в 5-10 раз медленнее, однако альтернатив нет, если нужно обработать кириллицу, придется использовать их.

    Количество символов в строке

    Чтобы посчитать количество символов в строке есть три функции: strlen() , mb_strlen() и iconv_strlen() . Первая это родная функция PHP и она будет правильно работать только для латиницы. Две другие функции работают на основе подключаемого расширения для PHP и нужны для подсчета кириллицы или других языков. В них можно указать кодировку строки.

    Как посчитать сколько раз встречается одна строка в другой

    Чтобы получить количество подстрок входящих в другую строку, можно воспользоваться двумя функциями: substr_count() и mb_substr_count() — для кириллицы.

    Удаление символов внутри строки

    Сделать это можно многими способами, но самый простой это функция str_replace() :

    Удаление символов на концах строки

    Чтобы прочистить концы строки от пробелов, табов и переносов есть функция trim() . Но не все знают что этой функции можно передать второй параметр, чтобы удалить с концов строки указанный символ.

    Также, не все знают что есть аналогичные функции:

    • rtrim() — удаляет только справа строки
    • ltrim() — удаляет только слева строки
    Удаление пустых символов на концах строки
    Удаление указанных символов в начале и конце строки

    Как перевернуть строку в PHP

    Для вывода строки в обратном (реверсивном) порядке есть функция strrev() . Но, как и многие функции она не умеет работать с кириллицей. Альтернативных функций, вроде mb_strlen() нет. Поэтому давайте создадим свою:

    День недели и месяц по-русски на PHP

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

    Месяц по-русски
    День недели

    Есть что добавить? Милости прошу в комментарии.

    PHP целые числа, числа с плавающей точкой и числовые строки

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

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

    Различные типы чисел в PHP

    Целые числа

    Самый простой тип числа в PHP — это целое число. Как вы уже знаете, целые числа являются числами без какой-либо десятичной части. Например, 2 представляет собой целое число, а также 235298 или -235298. С другой стороны, 2.0 и 3.58 — это числа с плавающей точкой. Мы обсудим их более подробно позже.

    Важно помнить, что нет необходимости, чтобы число было типа int , если оно не имеет десятичной части. Например, 16*2.5 составляет ровно 40 , но тип этого результата по-прежнему будет числом float . Когда вы умножаете числа, конечный результат будет иметь тип float, если хотя бы один из операндов был float. Не имеет значения, имеет ли конечное число десятичную часть или нет.

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

    Как правило, вы ожидаете, что результат умножения двух переменных типа int будет иметь тип int . Однако это не так в случае переполнения. Умножение пяти или шести разных чисел может легко вывести вас за пределы типа int . Например, результат 128*309*32*43*309 — это float в моей системе, потому что он превышает значение PHP_INT_MAX , которое равно 2147483647 .

    Вы можете использовать функцию is_int($value) , чтобы проверить, имеет ли число целочисленный тип. Существует два псевдонима этой функции: is_integer($value) и is_long($value) . Обе они дадут один и тот же результат.

    Числа с плавающей точкой

    Следующий наиболее распространенный тип числа, с которым вы будете иметь дело, — это float. В отличие от целых чисел, которые в большинстве случаев были просто числами без десятичных точек, ряд типов float может быть представлен различными способами. Значения 3.14 , 12.0 , 5.87E+10 и 3.56E-5 — все это числа с плавающей точкой.

    PHP автоматически преобразует число в тип float , когда используются десятичные или очень большие числа. Тип float обычно может хранить числа с величиной, приблизительно равной 1.7976931348623E+308 . Однако это зависит от платформы.

    Значение 1.7976931348623E+308 может показаться очень большим значением — и это так! — но числа с плавающей точкой имеют максимальную точность всего около 14 цифр. Любое число с большим количеством цифр, чем это, потеряет свою точность. Это означает, что вы можете хранить очень большое число, но вы не сможете хранить информацию о его точном значении — во многих случаях float является лишь приблизительным.

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

    Бесконечность и NaN

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

    Бесконечность в PHP отличается от бесконечности в реальной жизни. В PHP любое числовое значение выше приблизительно PHP_FLOAT_MAX на платформе считается бесконечным. Итак, 1.8e308 даст вам float(INF) на var_dump() . Вы можете проверить, является ли числовое значение конечным или бесконечным, используя функции is_finite() и is_infinite() .

    Точно так же NaN обозначает Not a Number, но не проверяет, является ли значение числовым или нет. Значение NaN используется для результата математических операций, которые невозможны в математике. Например, log(-1) будет NaN . Аналогично, acos(5) также будет NaN . Вы можете проверить, не является ли значение, возвращаемое математической операцией, не числом, используя функцию is_nan() .

    Численные строки в PHP

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

    Функция is_numeric() может помочь вам определить, действительно ли строка или переменная является числовой или нет. Эта функция вернет true для чисел, записанных в восьмеричной, двоичной или шестнадцатеричной нотации. Он также вернет true , если числа записаны в экспоненциальном виде, например, +16.52e39 .

    Начиная с PHP 7.0.0, когда вы передаете строку в is_numeric() , она возвращает только true , если строка состоит из необязательного знака, некоторых цифр, необязательной десятичной и необязательной экспоненциальной части. Это означает, что числовая строка, записанная в шестнадцатеричном или двоичном формате, вернет false с PHP 7.0.0.

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

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

    В последнем случае шестнадцатеричная строка «0xfedd24» не преобразуется в ее десятичное значение, потому что PHP 7 не считает ее допустимой числовой строкой.

    Приведение строк и чисел с плавающей точкой к целым числам

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

    Вы можете использовать (int) или (integer) для преобразования любого значения в целое число. В случае float значения всегда будут округлены до нуля. Другой способ преобразовать строки и float в целые числа — с помощью функции intval() . Обе функции (int) и intval() работают одинаково.

    Следует отметить, что при переполнении строк для целых чисел конечное значение будет устанавливаться в максимально допустимое целочисленное значение. Однако приведение значения float, значение которого превышает максимально допустимое целочисленное значение, приведет к колебанию значения между -2147483648 и 2147483647 !

    В определенных ситуациях вам может понадобиться иметь дело с очень большими числами, не теряя при этом никакой точности. Например, невозможно получить точный результат умножения 987233498349834828 и 3487197512 с помощью оператора * . Это даст вам 3.4426781992086E+27 после конвертации float. Вычисление фактического ответа, которое составляет 3442678199208600117812547936 , потребует использования библиотек, таких как BCMath. BCMath работает, сохраняя числа как строки и выполняя арифметические операции над ними вручную. Просто помните, что если вы используете BCMath, вы будете иметь дело со строками вместо целых чисел и чисел с плавающей точкой.

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

    Пример того, когда такая ситуация может возникнуть, — это когда вы имеете дело с математическими функциями, такими как floor() и ceil() и т. д. floor() и ceil() всегда возвращают float, даже если вы передадите им int!

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

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

    Заключительные мысли

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

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

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

    Как всегда, если у вас есть какие-либо вопросы или дополнительные советы, вы можете оставить комментарий.

    Php целая часть числа

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

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

    Округление дробного числа до целого. Вставляйте сюда неотформатированный текст.

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

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

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

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

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

    Возвращает дробный остаток от деления (PHP 4 >= 4.2.0, PHP 5)

    Возвращает дробный остаток от деления десятичных дробей x и y). Остаток (r) определяется так: x = i * y + r, где i — некоторое целое. r всегда имеет такоей же знак, как и x и модуль, меньший или равный модулю y.

    Пример использования fmod()

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

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

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

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

    Обычно это 32767

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

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

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

    LCG-генератор псевдо-случайных чисел (PHP 4, PHP 5)

    lcg_value() возвращает псевдослучайное число в диапазоне (0, 1). Функция объединяет два генератора c 2^31 — 85 и 2^31 — 249 в периоде.

    mt_getrandmax()

    Показывает наибольшее возможное случайное значение (PHP 3 >= 3.0.6, PHP 4, PHP 5)

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

    Генерирует лучшее случайное значение (PHP 3 >= 3.0.6, PHP 4, PHP 5)

    Многие генераторы случайных чисел старых версий имеют сомнительные характеристики и работают медленно. По умолчанию PHP использует генератор случайных чисел функции rand(). Функция mt_rand() является хорошей ее заменой. Она использует рандомный генератор чисел, работающий в 4 раза быстрее, чем rand(), и использующий Mersenne Twister.

    Вызванная без необязательных аргументов min и max, mt_rand() возвращает псевдо-случайное значение, расположенное между 0 и RAND_MAX. При необходимости получить, к примеру, случайные значения между 5 и 15 включительно, ишется mt_rand (5, 15).

    Пример применения mt_rand()

    Результатом выполнения данного примера будет что-то подобное:

    Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

    Замечание: В версиях до 3.0.7 второй параметр функции указывал диапазон чисел. Например, для получения случайных чисел между 5 и 15 в этих версиях требуется задать функцию mt_rand (5, 11).

    Устанавливает начальное значение лучшего генератор случайных чисел (PHP 3 >= 3.0.6, PHP 4, PHP 5)

    Устанавливает начальное значение генератора случайных чисел с помощью seed. Начиная с PHP 4.2.0, seed не является обязательной, и установки по умолчанию для случайных значений опускаются.

    Пример использования mt_srand()

    Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

    BASE_CONVERT

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

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

    Например, следующие команды выведут 11111111 (8 единичек), потому что это — не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:

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

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

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

    Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2147483647, которое выглядит как 31 единичка в двоичной системе. Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо «bin» подставляются соответственно «oct» и «hex».

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

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

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

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

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

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

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

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

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

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

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

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

    NUMBER_FORMAT

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

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

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

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

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

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

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

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

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

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

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

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

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

    Возведение в степень. Синтаксис:

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

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

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

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

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

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

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

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

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

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

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

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

    Вычисляет длину гипотенузы прямоугольного треугольника (PHP 4 >= 4.1.0, PHP 5)

    hypot() возвращает длину гипотенузы прямоугольного треугольника со сторонами длиной x и y, или расстояние точки (x, y) от основания. Это эквивалентно выражению sqrt(x*x + y*y).

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

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

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

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

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

    Делит left_operand на right_operand и возвращает результат с точностью (знаками после запятой),
    заданной в параметре scale.

    Возвращает остаток целочисленного деления. Синтаксис:

    Данная функция возвращает остаток от целочисленного деления left_operand на modulus.

    Операция умножения для двух чисел произвольной точности. Синтаксис:

    Производит умножение left_operand на right_operand, и выдает результат в виде строки с точностью, заданной в переменной scale.

    Возведение одного числа произвольной точности в степень другого. Синтаксис:

    Возведение x в степень y. Параметр scale может использоваться для установки количества цифр после точки.

    Устанавливает точность вычислений. Синтаксис:

    Эта функция устанавливает заданную по умолчанию точность вычислений для всех математических функций BCMath, которые явно не определяют точность

    Получение квадратного корня числа произвольной точности. Синтаксис:

    Возвращает квадратный корень аргумента operand. Параметр scale устанавливает количество цифр после десятичной отметки в результате.

    Вычитает одно число произвольной точности из другого. Синтаксис:

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

    Проверяет, является ли значение действительным конечным числом (PHP 4 >= 4.2.0, PHP 5)

    Возвращает TRUE если val является действительным конечным числом в пределах допустимых float значений, поддерживаемых данной платформой.

    is_infinite()

    Проверяет, является ли значение бесконечным числом (PHP 4 >= 4.2.0, PHP 5)

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

    Проверяет, является ли значение не числом (PHP 4 >= 4.2.0, PHP 5)

    Возвращает TRUE, если val является ‘не числом’, аналогично результату acos(1.01).

    PhpBuilder.ru

    ваш путеводитель по веб программированию

    • ГЛАВНАЯ
    • ИЗУЧЕНИЕ PHP
    • СТАТЬИ ПО PHP
    • PHP СКРИПТЫ
    • MySQL
    • УЧЕБНИКИ
    • FAQ
    • БЛОГ

    Главное меню

    • Главная страница
    • О нас
    • Изучение php
    • Интересные статьи
    • Php функции
    • Скрипты php
    • Учим Java Script
    • MySQL
    • Видеоуроки по php
    • Блог
    • Контакты

    Уроки по PHP

    • Урок 23. Как использовать рекурcивную функцию в php?
    • Урок 22. Как переменной присвоить результат функции?
    • Урок 21. Вызов php функций
    • Урок 20. Создание функций в php
    • Урок 19. Функции в языке php
    • Урок 18. Способы перебора элементов массивов
    • Урок 17. Одномерные и многомерные массивы
    • Урок 16. Индексные и ассоциативные массивы
    • Урок 15. Создание массивов
    • Урок 14. Массивы в php
    • Урок 13. Команды включения файлов: require, require_ once, include, include_once

    Урок 2. Типы данных в php: вещественные, целые числа, строки, массивы, объекты, логические величины

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

    Теперь поговорим о типах данных в php. Языки программирования можно разделить на две группы: языки с динамической типизацией и языки со статической типизацией. PHP принадлежит к первой группе, то есть — это язык с динамической типизацией . Это значит то, что в php существуют различные типы данных:

    — Вещественные числа (real);
    — Целые числа (integer);
    — Строки (string);
    — Массивы (array);
    — Обьекты (object);
    — Логические величины (boolean).

    1. Вещественные числа (real);

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

    2. Целые числа (integer);

    Целое число – это последовательность из одной или нескольких цифр без дробной части. Запись целого числа в PHP может быть разной:

    Обычная десятеричная система счисления —

    Шестнадцатеричная система (когда число начинается с 0x )-

    Восьмеричная система (число начинается с 0)-

    Целые числа в php могут быть как положительным так и отрицательными, в зависимости от того какой знак – «плюс» или «минус» стоит перед ними.

    3. Строки (string);

    Что такое строка в php? Это последовательный набор символов, который является одним целым, но при этом имеется доступ к символам, входящим в этот набор. Строки в php, как правило, не используют для вычислений, а служат для передачи смысловой нагрузки. Вот несколько примеров строк:

    Hello

    Пример

    90crossroads

    При программировании на php все строки можно разделить на 3 виды:

    1). Строки, обрамлены одинарными кавычками (апострофами);

    2). Строки, обрамлены двойными кавычками;

    3). Встроенные документы.

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

    — строго типизированные (в этих языках веб программирования строго ограничены операции с разнотипными данными, например сложение целого числа и строки);

    — слабо типизированные (в таких языках операции с разнотипными данными возможны).

    Так вот, php — это язык со слабой типизацией.

    Например, если взять любое число, и заключить его в кавычки, то данная последовательность будет воспринята интерпретатором php как строка, а не как число. Но здесь следует заметить, что пи сложении, например строки “100” и числа 10 мы получим результат – 110. Вывод следующий – php сам определяет тип данных и потом проводит соответствующие операции. Эту особенность надо иметь в виду при программировании на php.

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

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

    Внутри одинарных кавычек – переменные не интерпретируются, то есть строка пишется как есть.

    Закрепим теорию на практике:

    Мы получим один и тот же результат — Sasha , так как в строках нету переменных.

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

    $sentence1=”Его зовут $name”;

    $sentence2=’Его зовут $name’;

    В первом случае мы получаем — Его зовут Sasha, а во втором — Его зовут $name.

    Нужно всегда помнить это различие, дабы избежать ошибок в коде.

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

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

    Пример экранирования:

    В результате выполнения данного php скрипта мы получим следующее:

    Символ перевода строки: n .

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

    Аналогичным образом экранируются и другие служебные символы представлены в таблице выше.

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

    Рассмотрим вот такой скрипт:

    Данный код php вызовет ошибку, почему так? Дело в том, что когда интерпретатор обрабатывает этот скрипт, он считает, что строковое выражение заканчивается после второй кавычки. После него согласно синтаксису языка программирования php должно идти либо продолжение выражения, либо его ограничитель. Вместо этого в коде идет слово — Бойцовский, что и заставляет интерпретатор выдать ошибку.

    Как решить эту проблему? Здесь есть 2 варианта:

    1. Можно экранировать внутренние кавычки с помощью обратных косых черт;
    2. Либо же надо заменить внутренние или внешние двойные кавычки на одинарные.

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

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

    Фильм называется ”Бойцовский клуб”, я смотрел его в прошлом году.

    Фильм называется “$book”, я смотрел его в прошлом году.

    Фильм называется ‘Бойцовский клуб’, я смотрел его в прошлом году.

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

    Третьим видом строковых значений после строк с одинарными и двойными кавычками следует встроенная документация (от англ. Heredoc). Строковое значение ограничивается с помощью символа и двух идентификаторов, которые являются произвольными.

    Например:

    Результат исполнения скрипта:

    Вы видите пример строки с “неэкранированными кавычками” и

    переводом строки. Переменная.

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

    4.Массивы (array);

    Что такое массив в php? Массив (от англ. array) — это список элементов одного типа. В php cуществуют 3 вида массивов:

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

    $player[0] = “Криштиану Роналду”;

    $player[1] = “Виейра Марсело”;

    Более подробно массивы будут рассмотрены в следующих уроках.

    5.Объекты (object);

    Обьекты – это еще однин тип данных в языке программирования php. Обьекты в php невозможно рассматривать без знакомства с ООП (обьектно-ориентированным программированием). Обьекты, как и массивы, будут детально рассмотрены в наших следующих уроках.

    6.Логические величины (boolean);

    Этот тип данных по праву считают одним из самых простых в PHP , так как он может иметь только одно из двух значений — либо значение истина (англ. true), либо ложь (англ. false) . Логические величины или как их еще называют, булевы, могут использоваться двумя способами — как результат логических операций или как значения переменных. При использовании логических величин как переменных, ключевые регистронезависимые слова TRUE и FALSE являются их значениями. Пример:

    $example = TRUE;

    В данном случае переменная $example имеет значение TRUE и в то же время является истиной. В программировании на php очень часто применяют логические операции, где используются логические величины. Возможно, вы уже знакомы с условными управляющими конструкциями, которые основаны на логических величинах. Пример:

    $word=TRUE;

    В чем суть этого кода? Он проверяет, равна ли переменная $ example числу 10. Если это так, то сравнение $example ==10 возвращает значение TRUE, при этом выполняется код в фигурных скобках. В ином случае сравнение возвращает FALSE и как следствие код заключенный в фигурные скобки не исполняется.

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

    Как можно использовать данные из таблицы?

    Их значения можно присваивать переменным и использовать их в логических операциях.

    Пример:

    В первой строке кода переменной $example было присвоено значение 0. Дальше скрипт проверяет значение переменной $example и выводит строку $example=FALSE, потому что значение $example равняется нулю. Где здесь логическая операция? Дело в том, что выражение if($example) представляет собой скороченный вариант логической операции — if($example==TRUE).

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

    Adblock
    detector