mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00
improve the fix and the test
This commit is contained in:
parent
a65efab679
commit
6a7f43cfa0
2 changed files with 41 additions and 2 deletions
|
@ -615,14 +615,16 @@ static void php_filter_array_handler(zval *input, zval **op, zval *return_value
|
|||
zval **tmp, **arg_elm;
|
||||
|
||||
if (!op) {
|
||||
SEPARATE_ZVAL(&input);
|
||||
zval_dtor(return_value);
|
||||
*return_value = *input;
|
||||
zval_copy_ctor(return_value);
|
||||
INIT_PZVAL(return_value);
|
||||
php_filter_call(&return_value, FILTER_DEFAULT, NULL, 0, FILTER_REQUIRE_ARRAY TSRMLS_CC);
|
||||
} else if (Z_TYPE_PP(op) == IS_LONG) {
|
||||
SEPARATE_ZVAL(&input);
|
||||
zval_dtor(return_value);
|
||||
*return_value = *input;
|
||||
zval_copy_ctor(return_value);
|
||||
INIT_PZVAL(return_value);
|
||||
php_filter_call(&return_value, Z_LVAL_PP(op), NULL, 0, FILTER_REQUIRE_ARRAY TSRMLS_CC);
|
||||
} else if (Z_TYPE_PP(op) == IS_ARRAY) {
|
||||
array_init(return_value);
|
||||
|
|
|
@ -28,6 +28,19 @@ var_dump(filter_var_array(array("var_name"=>""), array("var_name"=>-1)));
|
|||
var_dump(filter_var_array(array("var_name"=>""), array("var_name"=>-1, "asdas"=>"asdasd", "qwe"=>"rty", ""=>"")));
|
||||
var_dump(filter_var_array(array("asdas"=>"text"), array("var_name"=>-1, "asdas"=>"asdasd", "qwe"=>"rty", ""=>"")));
|
||||
|
||||
|
||||
$a = array(""=>""); $b = -1;
|
||||
var_dump(filter_var_array($a, $b));
|
||||
var_dump($a, $b);
|
||||
|
||||
$a = array(""=>""); $b = 100000;
|
||||
var_dump(filter_var_array($a, $b));
|
||||
var_dump($a, $b);
|
||||
|
||||
$a = array(""=>""); $b = "";
|
||||
var_dump(filter_var_array($a, $b));
|
||||
var_dump($a, $b);
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
@ -99,4 +112,28 @@ array(4) {
|
|||
[""]=>
|
||||
NULL
|
||||
}
|
||||
array(1) {
|
||||
[""]=>
|
||||
string(0) ""
|
||||
}
|
||||
array(1) {
|
||||
[""]=>
|
||||
string(0) ""
|
||||
}
|
||||
int(-1)
|
||||
array(1) {
|
||||
[""]=>
|
||||
string(0) ""
|
||||
}
|
||||
array(1) {
|
||||
[""]=>
|
||||
string(0) ""
|
||||
}
|
||||
int(100000)
|
||||
bool(false)
|
||||
array(1) {
|
||||
[""]=>
|
||||
string(0) ""
|
||||
}
|
||||
string(0) ""
|
||||
Done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue