В настоящее время я работаю над написанием небольшой библиотеки по математике в php. Я знаю, что существует какой-то аналог javascript NaN
в php это константа NAN
из float
тип.
До сих пор я никогда не сталкивался с этой константой, кроме стандартных функций PHP, таких как asin()
и так, который вернет это NAN
значение, если вы передаете им недопустимый параметр (> 1 в данном случае).
Это значение не обнаружено is_float()
а также is_numeric()
так как это из float
типа, обе эти функции возвращают true
и единственный способ проверить это is_nan()
, Кроме того, приведение его к (int)
приведет к 0
;
$x = asin(3); // $x = NAN
is_float($x); // true
is_numeric($x); // true
$d = (int)$x // $d = 0;
is_nan(0.5) // false
is_nan($x) // true
Но ни одна из существующих библиотек, о которых я знаю, не использует это поведение, вместо этого, как кажется, выбрасывание ошибки является обычным выбором.
Итак, мои вопросы: какой подход я должен выбрать? почему нигде, кроме стандартных функций php, NAN
используется?
Задача ещё не решена.
Других решений пока нет …