Bug #68761 [Com]: filter_var(null) returns false with FILTER_NULL_ON_FAILURE

From: 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

« previous php.bugs (#228275) next »