Add FILTER_VALIDATE_BOOL as alias for FILTER_VALIDATE_BOOLEAN

Both filters are equivalent, but FILTER_VALIDATE_BOOL uses our
canonical name for the type (the only one permitted in type
declarations for example), so the new name is preferred long
term.

The old name may be deprecated in the future, but no specific
timeline is planned.
This commit is contained in:
Wouter Wijsman 2019-12-17 09:13:41 +01:00 committed by Nikita Popov
parent 6c6d36bb94
commit f13d0a72d5
4 changed files with 78 additions and 3 deletions

View file

@ -381,6 +381,10 @@ PHP 8.0 UPGRADE NOTES
10. New Global Constants
========================================
- Filter:
. FILTER_VALIDATE_BOOL has been added as an alias for FILTER_VALIDATE_BOOLEAN.
The new name is preferred, as it uses the canonical type name.
========================================
11. Changes to INI File Handling
========================================

View file

@ -37,7 +37,7 @@ typedef struct filter_list_entry {
/* {{{ filter_list */
static const filter_list_entry filter_list[] = {
{ "int", FILTER_VALIDATE_INT, php_filter_int },
{ "boolean", FILTER_VALIDATE_BOOLEAN, php_filter_boolean },
{ "boolean", FILTER_VALIDATE_BOOL, php_filter_boolean },
{ "float", FILTER_VALIDATE_FLOAT, php_filter_float },
{ "validate_regexp", FILTER_VALIDATE_REGEXP, php_filter_validate_regexp },
@ -190,7 +190,8 @@ PHP_MINIT_FUNCTION(filter)
REGISTER_LONG_CONSTANT("FILTER_NULL_ON_FAILURE", FILTER_NULL_ON_FAILURE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_INT", FILTER_VALIDATE_INT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_BOOLEAN", FILTER_VALIDATE_BOOLEAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_BOOLEAN", FILTER_VALIDATE_BOOL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_BOOL", FILTER_VALIDATE_BOOL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_FLOAT", FILTER_VALIDATE_FLOAT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_VALIDATE_REGEXP", FILTER_VALIDATE_REGEXP, CONST_CS | CONST_PERSISTENT);

View file

@ -56,7 +56,7 @@
#define FILTER_FLAG_EMAIL_UNICODE 0x100000
#define FILTER_VALIDATE_INT 0x0101
#define FILTER_VALIDATE_BOOLEAN 0x0102
#define FILTER_VALIDATE_BOOL 0x0102
#define FILTER_VALIDATE_FLOAT 0x0103
#define FILTER_VALIDATE_REGEXP 0x0110

70
ext/filter/tests/061.phpt Normal file
View file

@ -0,0 +1,70 @@
--TEST--
filter_var() and FILTER_VALIDATE_BOOL
--SKIPIF--
<?php if (!extension_loaded("filter")) die("skip"); ?>
--FILE--
<?php
class test {
function __toString() {
return "blah";
}
}
$t = new test;
var_dump(filter_var("no", FILTER_VALIDATE_BOOL));
var_dump(filter_var(NULL, FILTER_VALIDATE_BOOL));
var_dump(filter_var($t, FILTER_VALIDATE_BOOL));
var_dump(filter_var(array(1,2,3,0,array("", "123")), FILTER_VALIDATE_BOOL, FILTER_REQUIRE_ARRAY));
var_dump(filter_var("yes", FILTER_VALIDATE_BOOL));
var_dump(filter_var("true", FILTER_VALIDATE_BOOL));
var_dump(filter_var("false", FILTER_VALIDATE_BOOL));
var_dump(filter_var("off", FILTER_VALIDATE_BOOL));
var_dump(filter_var("on", FILTER_VALIDATE_BOOL));
var_dump(filter_var("0", FILTER_VALIDATE_BOOL));
var_dump(filter_var("1", FILTER_VALIDATE_BOOL));
var_dump(filter_var("NONE", FILTER_VALIDATE_BOOL));
var_dump(filter_var("", FILTER_VALIDATE_BOOL));
var_dump(filter_var(-1, FILTER_VALIDATE_BOOL));
var_dump(filter_var("000000", FILTER_VALIDATE_BOOL));
var_dump(filter_var("111111", FILTER_VALIDATE_BOOL));
echo "Done\n";
?>
--EXPECT--
bool(false)
bool(false)
bool(false)
array(5) {
[0]=>
bool(true)
[1]=>
bool(false)
[2]=>
bool(false)
[3]=>
bool(false)
[4]=>
array(2) {
[0]=>
bool(false)
[1]=>
bool(false)
}
}
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
Done