Edit report at https://bugs.php.net/bug.php?id=64877&edit=1
ID: 64877 Updated by: yohg...@php.net Reported by: cmbecker69 at gmx dot de Summary: is_numeric() doesn't treat strings in binary notation as documented Status: Open -Type: Documentation Problem +Type: Bug -Package: Documentation problem +Package: Scripting Engine problem Operating System: any PHP Version: 5.4.15 Block user comment: N Private report: N New Comment: Related to https://bugs.php.net/bug.php?id=65418 Previous Comments: ------------------------------------------------------------------------ [2013-05-19 10:22:43] ramon dot ornela at gmail dot com This is a bug, already that the is_numeric supported octal e hexadecimal, should add support to binary annotation too. ------------------------------------------------------------------------ [2013-05-18 12:40:46] cmbecker69 at gmx dot de Description: ------------ In PHP 5.4.15 the definition of is_numeric() is in ext/standard/type.c (line 300ff)[1]. The relevant function to do the check for arguments of type string is is_numeric_string_ex() in Zend/zend_operators.h (line 109ff)[2]. Apparently special support for strings in binary as well as octal notation is missing; only strings in decimal and hexadecimal notation are recognized as such (strings in octal notation are treated as being decimal). I have filed this issue as documentation problem, but it might be considered an implementation bug. [1] <http://lxr.php.net/xref/PHP_5_4/ext/standard/type.c> [2] <http://lxr.php.net/xref/PHP_5_4/Zend/zend_operators.h> Test script: --------------- var_dump(is_numeric('0b1')); Expected result: ---------------- bool(true) Actual result: -------------- bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=64877&edit=1