1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/standard/tests/array/compact_basic.phpt
dwgebler f5139878f9 Check parameters on compact() and throw warning if not string or array of strings (#6921)
compact() is documented (https://www.php.net/manual/en/function.compact) as a variadic function accepting parameters which are strings or arrays of strings referencing defined symbols.

In actuality, passing nonsense parameters e.g. compact(true, 42) merely returns an empty array. I propose throwing a warning in these cases, to prevent silent bugs.
2021-05-11 09:36:12 +02:00

74 lines
1.0 KiB
PHP

--TEST--
Test compact() function : basic functionality
--FILE--
<?php
/*
* Test basic functionality
*/
echo "*** Testing compact() : basic functionality ***\n";
$a=1;
$b=0.2;
$c=true;
$d=array("key"=>"val");
$e=NULL;
$f="string";
// simple array test
var_dump (compact(array("a", "b", "c", "d", "e", "f")));
// simple parameter test
var_dump (compact("a", "b", "c", "d", "e", "f"));
var_dump (compact(array("keyval"=>"a", "b"=>"b")));
var_dump(compact(array("g")));
echo "Done";
?>
--EXPECTF--
*** Testing compact() : basic functionality ***
array(6) {
["a"]=>
int(1)
["b"]=>
float(0.2)
["c"]=>
bool(true)
["d"]=>
array(1) {
["key"]=>
string(3) "val"
}
["e"]=>
NULL
["f"]=>
string(6) "string"
}
array(6) {
["a"]=>
int(1)
["b"]=>
float(0.2)
["c"]=>
bool(true)
["d"]=>
array(1) {
["key"]=>
string(3) "val"
}
["e"]=>
NULL
["f"]=>
string(6) "string"
}
array(2) {
["a"]=>
int(1)
["b"]=>
float(0.2)
}
Warning: compact(): Undefined variable $g in %s on line %d
array(0) {
}
Done