问题描述
$result = [ '12w'=>'大扫除', '3.3'=>' 搜索 ', '456' => '333', 789 => 1266 ]; var_dump($result); /* result is : ********************* array(4) { ["12w"]=> string(9) "大扫除" ["3.3"]=> string(8) " 搜索 " [456]=> string(3) "333" [789]=> int(1266) } */
2.尝试解决方案(均不生效):
①加单引号、双引号 如'456' => '333'
②用string强转 如(string)789 => 1266
③用strval强转 如strval(789) => 1266
$result1 = [ '12w'=>'大扫除', '3.3'=>' 搜索 ', '456' => '333', (string)789 => 1266 ]; $result2 = [ '12w'=>'大扫除', '3.3'=>' 搜索 ', '456' => '333', strval(789) => 1266 ];
数据分析师2017-10-01 01:08:24
PHPの数値キー名が強制的に整数に変換される問題を解決するにはどうすればよいですか? -PHP中国語サイトQ&A-PHPの数値キー名が強制的に整数に変換されてしまう問題の解決方法は? -PHP中国語サイトQ&A
ぜひ見て学んでください。
大家讲道理2017-03-25 13:48:03
PHP 数组可以同时含有 integer 和 string 类型的键名,因为 PHP 实际并不区分索引数组和关联数组。只要是数字型字符串都会转换为数字
迷茫2017-03-25 09:14:33
PHP 数组可以同时含有 integer 和 string 类型的键名,因为 PHP 实际并不区分索引数组和关联数组。只要是数字型字符串都会转换为数字
key 会有如下的强制转换:
包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。
数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type