Функция является аналогом двух PHP-функция abs( intval( $maybeint ) )
.
Поэтому сначала значение $maybeint
, которое вы передаёте в функцию, обрабатывается функцией intval()
(сейчас это происходит слегка по-другому, но суть та же – (int) $maybeint
), что приводит к получению целого числа из числового/строкового значения. Для наглядности чекаем таблицу:
Аргумент функции intval() | Значение функции intval() |
---|---|
52 | 52 |
-52 | -52 |
5.2 | 5 |
58 | 5 |
'52' | 52 |
'какой-то текст' | 0 |
array() (пустой массив) | 0 |
array( 'n', 9 ) (непустой массив) | 1 |
не используется с объектами | Notice: Object of class stdClass could not be converted to int |
Как видите, функция не округляет числа до целого в большую или меньшую сторону — она лишь отсекает дробную часть.
Затем к результату применяется функция abs()
, которая возвращает неотрицательное значение числа, иначе говоря находит его модуль.
Аргумент функции abs() | Значение функции abs() |
---|---|
52 | 52 |
-52 | 52 |
0 | 0 |
Для того, чтобы понять, для чего нужны все эти преобразования в реальной жизни, рекомендую посмотреть мой видеоурок про валидацию и очистку данных в WordPress.
absint( $maybeint )
// ну с нулем я думаю всё понятно echo absint( 0 ); // 0 // отрицательные числа в итоге становятся положительными echo absint( -572 ); // 572 // числа в виде строк меняют тип данных, текст превращается в 0 echo absint( '152' ); // 152 echo absint( 'привет, ну что как' ); // 0 // у дробных чисел отсекается дробная часть, то есть всё, что идет после запятой(точки) echo absint( 7.9 ); // 7 // хотя есть прикол echo absint( 19.99 * 100 ); // 1998 echo absint( false ); // 0 echo absint( true ); // 1 echo absint( NULL ); // 0 // пустые массивы будут возвращать 0, не пустые - единицу echo absint( array( 100 ) ); // 1 // объекты выдадут PHP-уведомление Notice: Object of class stdClass could not be converted to int // но тем не менее вернут 1 echo absint( new stdClass() ); // 1
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.