我正在使用php 5.4和CodeIgniter 2.1开发应用程序(但我认为这严格来说是一个php问题)。我期待返回一个指向stdClass的指针,但我收到一个空值。
$this->myLittleTest($myLittlePointer);
// displays "NULL"
echo(gettype($myLittlePointer));
...
function myLittleTest(&$myPtr){
$myPtr = &$this->myLittleClass->myLittleArrayOfStdClasses[0];
// displays "object"
echo(gettype($myPtr));
}
是否存在导致指针返回null的范围问题?谢谢你的帮助。
答案 0 :(得分:1)
通过引用分配引用,您将破坏第一个引用。只需通过=
分配,而不是=&
:
function foo(&$bar) {
$val = 'baz';
$bar = $val;
}
foo($bar);
var_dump($bar);
请注意,引用不是指针。你没有处理内存地址指针,PHP没有这样做。引用只允许您分配符号表别名,仅此而已。