0
昨天我和我的一个朋友在静态类和实例类中走过;然后突然发生了一些奇怪的行为。一些变量没有通过引用传递
<?php
class NumberContainerO {
public $_number;
public function __construct($number) {
$this->_number = $number;
}
}
$list = array();
$n = new NumberContainerO(1);
$list[] = &$n->_number;
$n = new NumberContainerO(2);
$list[] = &$n->_number;
$n = new NumberContainerO(3);
$list[] = &$n->_number;
var_dump($list);
?>
<?php
class NumberContainer {
public static $_number;
public static function __Add($number) {
self::$_number = $number;
}
}
$list = array();
NumberContainer::__Add(1);
$list[] = &NumberContainer::$_number;
NumberContainer::__Add(2);
$list[] = &NumberContainer::$_number;
NumberContainer::__Add(3);
$list[] = &NumberContainer::$_number;
var_dump($list);
?>
输出
阵列(3){ [0] => INT(1) [1] => INT(2) [2] => & INT (3) } 阵列(3){ [0] => & INT(3) [1] => & INT(3) [2] => & INT(3) }
为什么INT(1),并且INT(2)不通过引用传递?
键盘:http://codepad.org/DsEZDFYf
@MichaelRushton有两个var转储。 – hjpotter92 2013-03-19 19:10:22