Кажется, что-то неправильно, так как передача по ссылке устарела в PHP 5.3 ... в любом случае, я пытаюсь написать фреймворк для модульного теста с использованием отражения, который позволяет передавать аргументы методу, который требует ссылка. например,
class Bar {
function TestMethod($arg1, &$result) {
$result = 'hello';
return true;
}
}
$rc = new ReflectionMethod('Bar', 'TestMethod');
$return_val = $rc->invokeArgs($instance, $arguments);
Теперь я нашел сообщение на форуме по адресу http://www.phwinfo.com/forum/comp-lang-php/273316-how-invoke-reflectionmethod-pass-variable-reference-asargument.html, в котором я просто вставил ссылку на переменную в мой массив $ arguments:
$arguments = array('arg1', &$byref_result);
Это работает, но выдает ошибку «Устаревшее: передача по времени вызова устарела». Я хотел бы убедиться, что этот код совместим с форвардами, поэтому, если они полностью удалят его в PHP 6, я не облажусь Очевидно, что я предпочел бы не переписывать какой-либо код в моем проекте из-за недостатков в моей среде тестирования. Есть идеи или предложения? Спасибо! :)
P.S. Я попытался просмотреть документацию phpunit, чтобы узнать, сможет ли он это сделать, но на данный момент сайт не работает. Любые ссылки на решения «не изобретать велосипед» очень приветствуются, хотя мне также любопытен сам вопрос.