На самом деле эта функция, вордпрессовская, состоит из двух функций, PHP — intval()
и abs()
. Вот как это работает:
- Сперва значение, которое вы передаёте в
absint()
, отправляется в функциюintval()
, задачей которой является получение целого числа из числового/строкового значения, которое вы в неё отправили. Чтобы всё было понятно, приведу небольшую таблицу примеров:<!—
Аргумент функции inval()
Значение функции inval()
52 52 -52 -52 5.2 5 5.8 5 '52' 52 array()
(пустой массив)0 array('n',9)
(непустой массив)1 Нельзя использовать с объектами. —>
Как видите, функция не округляет числа до целого в большую или меньшую сторону — она просто отсекает дробную часть.Кроме того, функция позволяет вторым аргументом указывать систему счисления, но так как сейчас мы рассматриваем
inval()
именно в составе функции WPabsint()
, то о системах счисления говорить не будем. - Затем к результату применяется функция
abs()
, которая возвращает абсолютное значение числа, короче говоря находит его модуль. Для тех, у кого с математикой были некоторые трудности (или просто память подводит), вот небольшая таблица значений:<!—
Аргумент функции abs()
Значение функции abs()
52 52 -52 52 0 0 —>
На самом деле absint( параметр )
является полным аналогом: abs( intval( параметр )
, то есть она не содержит каких-либо фильтров, хуков или дополнительных функций или вычислений.
По документации:
absint( $maybeint ) |
- $maybeint
- (строка|целое число|массив) (параметр обязателен)
Примеры использования absint() на практике
Собственно, вот несколько примеров:
// ну с нулем я думаю всё понятно echo absint( 0 ); // 0 |
// отрицательные числа в итоге становятся положительными echo absint( -572 ); // 572 |
// строковые переменные становятся числовыми echo absint( '152' ); // 152 |
// у дробных чисел отсекается дробная часть, то есть всё, что идет после запятой(точки) echo absint( 7.9 ); // 7 |
// пустые массивы будут возвращать 0, не пустые - единицу echo absint( array( 100 ) ); // 1 |
Источник: misha.blog