我注意到PHP对象的一些奇怪行为,并且找不到相关的文档解释。
以下代码演示了这种行为
<?php
$a = (object) array( 0 => 1 );
foreach($a as $b => $c) {
$a->$b = ++$c; //I'm expecting the key to be overwritten here
}
var_dump($a);
$var = 0;
var_dump($a->$var);
$var = "0";
var_dump($a->$var);
以及输出结果
object(stdClass)#1 (2) {
[0]=>
int(1)
["0"]=>
int(2)
}
int(2)
int(2)
在使用 ->
语法时,类的数字部分是否不可访问?
key to be overwritten here
将被覆盖,你是否想要使用$a->1
而不是$a->0
? - Ronser$a
只包含一个变量,而不是两个。 - exussum