TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.2 KiB
69 lines
1.2 KiB
--TEST--
|
|
array_combine: non-int/non-string key handling
|
|
--FILE--
|
|
<?php
|
|
function main() {
|
|
// Basic combine
|
|
$keys = ["a", "b", "c"];
|
|
$values = [1, 2, 3];
|
|
$r = array_combine($keys, $values);
|
|
var_dump($r);
|
|
|
|
// Integer keys
|
|
$keys2 = [10, 20, 30];
|
|
$values2 = ["a", "b", "c"];
|
|
$r = array_combine($keys2, $values2);
|
|
var_dump($r);
|
|
|
|
// Float keys become string keys
|
|
$keys3 = [1.5, 2.5];
|
|
$values3 = ["first", "second"];
|
|
$r = array_combine($keys3, $values3);
|
|
var_dump($r);
|
|
|
|
// Null key becomes empty string key
|
|
$keys4 = [null];
|
|
$values4 = ["null_key"];
|
|
$r = array_combine($keys4, $values4);
|
|
var_dump($r);
|
|
|
|
// Boolean key: true→"1"→1 (int via symtable), false→"" (string)
|
|
$keys5 = [true, false];
|
|
$values5 = ["true_val", "false_val"];
|
|
$r = array_combine($keys5, $values5);
|
|
var_dump($r);
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
array(3) {
|
|
["a"]=>
|
|
int(1)
|
|
["b"]=>
|
|
int(2)
|
|
["c"]=>
|
|
int(3)
|
|
}
|
|
array(3) {
|
|
[10]=>
|
|
string(1) "a"
|
|
[20]=>
|
|
string(1) "b"
|
|
[30]=>
|
|
string(1) "c"
|
|
}
|
|
array(2) {
|
|
["1.5"]=>
|
|
string(5) "first"
|
|
["2.5"]=>
|
|
string(6) "second"
|
|
}
|
|
array(1) {
|
|
[""]=>
|
|
string(8) "null_key"
|
|
}
|
|
array(2) {
|
|
[1]=>
|
|
string(8) "true_val"
|
|
[""]=>
|
|
string(9) "false_val"
|
|
}
|
|
|