Перейти к содержимому

Inf php что это

  • автор:

Предопределённые константы

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

Следующие константы указывают на тип ошибки, возвращённой функцией json_last_error() или хранящейся, как code в JsonException .

JSON_ERROR_NONE ( int ) Не произошло никаких ошибок. JSON_ERROR_DEPTH ( int ) Была превышена максимальная глубина стека. JSON_ERROR_STATE_MISMATCH ( int ) Неверный или повреждённый JSON. JSON_ERROR_CTRL_CHAR ( int ) Ошибка управляющих символов, вероятно, из-за неверного кодирования. JSON_ERROR_SYNTAX ( int ) Синтаксическая ошибка. JSON_ERROR_UTF8 ( int ) Повреждённые символы UTF-8, вероятно, из-за неверного кодирования. JSON_ERROR_RECURSION ( int ) Объект или массив, переданный в функцию json_encode() включает рекурсивные ссылки и не может быть закодирован. Если была передана опция JSON_PARTIAL_OUTPUT_ON_ERROR , то на месте рекурсивных ссылок будет выведен null . JSON_ERROR_INF_OR_NAN ( int ) Значение, переданное в функцию json_encode() , включает либо NAN , либо INF . Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR , то вместо указанных особых значений будет выведен 0 . JSON_ERROR_UNSUPPORTED_TYPE ( int ) В функцию json_encode() было передано значение неподдерживаемого типа, например, resource. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR , то вместо неподдерживаемого значения будет выводиться null . JSON_ERROR_INVALID_PROPERTY_NAME ( int ) В строке переданной в json_decode() был ключ, начинающийся с символа \u0000. JSON_ERROR_UTF16 ( int ) Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_decode() .

Можно комбинировать следующие константы для передачи в json_decode() .

JSON_BIGINT_AS_STRING ( int ) Декодирует большие целые числа в качестве исходного значения строки. JSON_OBJECT_AS_ARRAY ( int ) Преобразовывает объекты JSON в массив PHP. Эта опция может быть задана автоматически, если вызвать функцию json_decode() , указав вторым параметром значение true .

Следующие константы можно комбинировать для использования в json_encode() .

JSON_HEX_TAG ( int ) Все < и >кодируются в \u003C и \u003E. JSON_HEX_AMP ( int ) Все & кодируются в \u0026. JSON_HEX_APOS ( int ) Все символы ‘ кодируются в \u0027. JSON_HEX_QUOT ( int ) Все символы » кодируются в \u0022. JSON_FORCE_OBJECT ( int ) Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект, а массив пуст. JSON_NUMERIC_CHECK ( int ) Кодирование строк, содержащих числа, как числа. JSON_PRETTY_PRINT ( int ) Использовать пробельные символы в возвращаемых данных для их форматирования. JSON_UNESCAPED_SLASHES ( int ) Не экранировать / . JSON_UNESCAPED_UNICODE ( int ) Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX). JSON_PARTIAL_OUTPUT_ON_ERROR ( int ) Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых. JSON_PRESERVE_ZERO_FRACTION ( int ) Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0. JSON_UNESCAPED_LINE_TERMINATORS ( int ) Символы конца строки не будут экранироваться, если задана константа JSON_UNESCAPED_UNICODE . Поведение будет таким же, какое оно было до PHP 7.1 без этой константы. Доступно с PHP 7.1.0.

Следующие константы можно комбинировать для использования в json_decode() и json_encode() .

JSON_INVALID_UTF8_IGNORE ( int ) Игнорировать некорректные символы UTF-8. Доступно с PHP 7.2.0. JSON_INVALID_UTF8_SUBSTITUTE ( int ) Преобразовывать некорректные символы UTF-8 в \0xfffd (Символ Юникода ‘REPLACEMENT CHARACTER’) Доступно с PHP 7.2.0. JSON_THROW_ON_ERROR ( int ) Выбрасывается исключение JsonException в случае возникновения ошибок вместо установки глобального состояния ошибки, которое может быть получено с помощью функции json_last_error() и json_last_error_msg() . Константа JSON_PARTIAL_OUTPUT_ON_ERROR имеет приоритет над JSON_THROW_ON_ERROR . Доступно с PHP 7.3.0.

is_nan

Возвращает результат проверки того, является ли переданное в параметр num значение нечислом ( NAN ) ( не числом ).

Нечисло ( NAN ) — неопределённый результат математического вычисления, бывает, например, тогда, когда передаваемые параметры выходят за пределы области входных данных функции. Квадратный корень числа (функция sqrt() ) может быть определён только для положительных чисел, передача (в функцию) отрицательного числа приведёт к состоянию нечисла ( NAN ). Другие примеры операций, возвращающих нечисло ( NAN ), — деление положительного бесконечного числа ( INF ) на другое бесконечное положительное число ( INF ) или любая операция, аргументами которой будет нечисло ( NAN ).

Замечание:

Несмотря на сказанное выше, нечисло ( NAN ) — это допустимое значение для типа float .

Предостережение

Нечисло ( NAN ) не тождественно другому нечислу ( NAN ). Соответствие числа с плавающей точкой нечислу ( NAN ) проверяют функцией is_nan() . Проверка $float === NAN не сработает.

Список параметров

Проверяемое число с плавающей точкой ( float )

Возвращаемые значения

Возвращает true , если параметр num — нечисло ( NAN ), иначе false .

Примеры

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

var_dump ( $nan , is_nan ( $nan ));
?>

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

float(NAN) bool(true)

Смотрите также

  • is_finite() — Проверяет, является ли число с плавающей точкой допустимым конечным числом
  • is_infinite() — Проверяет, является ли число с плавающей точкой бесконечным

User Contributed Notes 7 notes

17 years ago

nan/»not a number» is not meant to see if the data type is numeric/textual/etc..

NaN is actually a set of values which can be stored in floating-point variables, but dont actually evaluate to a proper floating point number.

The floating point system has three sections: 1 bit for the sign (+/-), an 8 bit exponent, and a 23 bit fractional part.
There are rules governing which combinations of values can be placed into each section, and some values are reserved for numbers such as infinity. This leads to certain combinations being invalid, or in other words, not a number.

8 years ago

I would use is_numeric() instead of ctype_digit() if you cannot be 100% sure what data type the string will be. Example from the docs:

$numeric_string = ’42’ ;
$integer = 42 ;

ctype_digit ( $numeric_string ); // true
ctype_digit ( $integer ); // false (ASCII 42 is the * character)

is_numeric ( $numeric_string ); // true
is_numeric ( $integer ); // true
?>

Предопределённые константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

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

Константа Значение Описание Доступна с версии
M_PI 3.14159265358979323846 число Пи
M_E 2.7182818284590452354 число Эйлера (e)
M_LOG2E 1.4426950408889634074 log_2 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(Пи) PHP 5.2.0
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 Натуральный логарифм числа пи
M_EULER 0.57721566490153286061 Постоянная Эйлера
PHP_ROUND_HALF_UP 1 Округление к большему целому
PHP_ROUND_HALF_DOWN 2 Округление к меньшему целому
PHP_ROUND_HALF_EVEN 3 Округление к чётному числу
PHP_ROUND_HALF_ODD 4 Округление к нечётному числу
NAN NAN (тип float) Не является числом (Not A Number)
INF INF (тип float) Бесконечность

User Contributed Notes 7 notes

8 years ago

I just learnt of INF today and found out that it can be used in comparisons:

You can also take its negative:

Division by INF is allowed:

echo 1/INF; // outputs ‘0’

11 years ago

There are also the predefined PHP_INT_MAX and PHP_INT_SIZE constants, that describe the range of possible integer values.

7 years ago

Although INF can be used for comparison against normal numbers and as a directed number, and behaves as reciprocal of zero, it is not like limit INF tends to infinity. These operations do not work:

var_dump ( INF / INF ); // float(NAN)
var_dump ( INF — INF ); // float(NAN)
?>

However, it works with arc-tangent:
var_dump ( atan ( INF ) / M_PI ); // float(0.5)
var_dump ( atan2 ( INF , INF ) / M_PI ); // float(0.25)
var_dump ( atan2 ( 1 , INF ) / M_PI ); // float(0)
?>

6 years ago

From PHP 7.2.0, the PHP_FLOAT_* constants are provided to describe the properties of floating point numbers that can be stored; PHP_FLOAT_MAX, for example, is analogous to PHP_INT_MAX and represents the largest possible floating-point number.

2 years ago

are constants intended to be used as the 3rd parameter in the math function round()

6 years ago

Another observation on INF.

Division by zero results in INF:

var_dump ( 1 / 0 ); // float(INF)
?>

BUT a ‘Division by zero’ warning is issued.

3 years ago

Caution when using variables with the value NAN (or directly NAN, which would not be logical) if the value is converted in any form (integer, string or other non-float format)!
In that case, NAN is converted to 0. (e.g. as an index in an array, argument of a method that takes it as a non-float parameter, etc.). This bug has been reported several times, but is still present in the current version PHP 7.3.15.

Example 1:
$array = [0 => ‘zero’, 1 => ‘one’, 2 => ‘two’];
$index = NAN;
echo $array[$index]; // echo ‘zero’ and not as axcepted throws an exception or at least a warning ‘undefined offset NAN . ‘

Example 2:
function f((int) $p) < return $p; >
echo f(NAN); // echo 0 because the argument (NAN) has been converted to integer (0)

It would have to be checked in both cases explicitly for is_nan():
1: if(is_nan($index))
>else echo $array[$index];
>;

2: function f($p) < // without converting.
if(is_nan($p))
>else return (int)$p; // actually a correct conversion to Integer would have to be checked because the parser does not check this here.
>;
>

  • Math
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Математические функции
    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    is_infinite

    Возвращает результат проверки того, является ли переданное в параметр num значение положительной ( INF ) или отрицательной бесконечностью ( -INF ).

    Список параметров

    Проверяемое число с плавающей точкой ( float )

    Возвращаемые значения

    Возвращает true , если параметр num является бесконечным положительным числом ( INF ) или отрицательным бесконечным числом ( -INF ), иначе false .

    Примеры

    Пример #1 Пример использования функции is_infinite()

    var_dump ( $inf , is_infinite ( $inf ));

    var_dump ( $negative_inf , is_infinite ( $negative_inf ));
    ?>

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

    float(INF) bool(true) float(-INF) bool(true)

    Смотрите также

    • is_finite() — Проверяет, является ли число с плавающей точкой допустимым конечным числом
    • is_nan() — Проверяет, является ли число с плавающей точкой нечислом

    User Contributed Notes

    There are no user contributed notes for this page.

    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *