Bug #68761 [Com]: filter_var(null) returns false with FILTER_NULL_ON_FAILURE
| From: | rihards dot sceredins at creative dot gs | Date: | Wed, 29 Jul 2020 14:09:32 +0000 |
| Subject: | Bug #68761 [Com]: filter_var(null) returns false with FILTER_NULL_ON_FAILURE | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-228275@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=68761&edit=1
ID: 68761
Comment by: rihards dot sceredins at creative dot gs
Reported by: tonyli dot lives at gmail dot com
Summary: filter_var(null) returns false with
FILTER_NULL_ON_FAILURE
Status: Closed
Type: Bug
Package: Filter related
Operating System: Ubuntu 12.04
PHP Version: 5.5.20
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Hey,
It seems that the author of this bug report mixed "expected result" with "actual
result".
I just tried this on PHP 7.4.8 and output of the test script mentioned above is:
bool(false)
bool(false)
bool(true)
NULL
Why is false returned for null?
Previous Comments:
------------------------------------------------------------------------
[2016-09-26 14:47:10] cmb@php.net
That issue has been resolved as of PHP 5.4.8, see
<https://3v4l.org/cBDRY>.
------------------------------------------------------------------------
[2015-01-15 10:53:52] ppasindud at gmail dot com
Works correctly in php-src master
------------------------------------------------------------------------
[2015-01-06 22:17:55] tonyli dot lives at gmail dot com
Description:
------------
Even with the flag on, trying to filter null returns false when it should be still null (as null is
not a boolean).
As per the documentation:
If FILTER_NULL_ON_FAILURE is set, FALSE is returned only for "0", "false",
"off", "no", and "", and NULL is returned for all non-boolean values.
Similar to: https://bugs.php.net/bug.php?id=67167
Test script:
---------------
var_dump(filter_var(null, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var('test', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
Expected result:
----------------
bool(false)
bool(false)
bool(true)
NULL
Actual result:
--------------
NULL
bool(false)
bool(true)
NULL
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=68761&edit=1