例如我上课
class Car
{
private $color='red';
}
我做了模拟对象之后
$carMock = $this->getMockBuilder(Car::class)->getMock();
所以现在我想获得Car类的私有属性颜色
该怎么做?!
我可以使用诸如getCar之类的公共方法,它将起作用,但是我想寻找另一种方法。
我尝试使用ReflectionClass,但这是错误的。
答案 0 :(得分:0)
public function setProtectedProperty($object, $property, $value) {
$reflection = new \ReflectionClass($object);
$reflection_property = $reflection->getProperty($property);
$reflection_property->setAccessible(true);
$reflection_property->setValue($object, $value);
}
public function getProtectedProperty($object, $property) {
$reflection = new \ReflectionClass($object);
$reflection_property = $reflection->getProperty($property);
$reflection_property->setAccessible(true);
$reflection_property->getValue($object);
}