상태 the PHP reference manual 인용 :호출 시간은 PHP5.5에서 작동하는 것으로 보입니다.
as of PHP 5.4.0, call-time pass-by-reference was removed, so using it will raise a fatal error
를 그리고 아직은?
<?php
error_reporting(E_ALL);
class parentClass
{
function _funcA()
{
var_dump($this);
}
}
class childClass extends parentClass
{
function funcA()
{
call_user_func_array(array(&$this, '_funcA'), array());
}
}
$test = new childClass();
$test->funcA();
그래서 문서가 잘못 PHP 5.5에 the following code와 함께 작동하도록 보인다? 또는 설명서에 언급되지 않은 몇 가지 특별한주의 사항이 있습니까? 문서가 그것이 없어야한다고 암시하는 경우 왜이 기능이 작동합니까?
편집 : 원래 코드에서
<?php
function f($v) { return $v->x++; }
$a = new StdClass();
$a->x = 1;
$b = f(&$a);
var_dump($a, $b);
아마도 개체 참조이기 때문에 개체는 항상 복사본이 아닌 "참조로"전달됩니다. 즉, 콜백에서 전달하는 특정 인스턴스입니다. –
그럴 필요는 없습니다. 객체에 대한 참조에 의한 호출 시간이 치명적인 오류를 일으키는 위치의 예제를 제공하여 원본 게시를 업데이트했습니다. – neubert