-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Привет. Отличная библиотека. Столкнулся с такой проблемой. Пытаюсь тестировать приватный метод, который принимает 1 аргумент в виде ссылки.
private function bit_set(int &$bitmap, int $bit)
{
$bitmap |= 1 << $bit - 1;
return $bitmap;
}
Не заработало в связи с тем, что функция ждет ссылку, а получает от ReflectionMethod() значение.
Добавил в метод __call()
array_walk($args, function($el){$el = &$el;} ); //switch function arguments from value to reference
Получилось так:
public function __call($methodName, array $args)
{
$method = new ReflectionMethod($this->class, $methodName);
if (!$method->isPublic()) {
$method->setAccessible(true);
}
array_walk($args, function($el){$el = &$el;} ); //switch function arguments from value to reference
return $method->isStatic()
? $method->invokeArgs(null, $args)
: $method->invokeArgs($this->object, $args );
}
Такие дела.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels