我从管理WSDL数据的类中获取结果集。
我没有把代码编写到类中,我只使用它。
我调用一个函数来创建一个包含该服务的ID,并希望稍后在同一个脚本中使用该ID。
我的结果集如下所示:
Array
(
[0] => SaveResult Object
(
[id:protected] => newgeneratedID
[success:protected] => 1
)
)
所以我尝试了$ response [0] - > id来获取我需要的ID。 现在我得到一个致命的错误。
PHP Fatal error: Cannot access protected property SaveResult::$id
我知道这是一个菜鸟问题,但我不知道为什么我可以print_r对象但不能获取值。
答案 0 :(得分:1)
除了同一个对象外,您不能使用来自其他空间的任何受保护数据。
但您可以编辑SaveResult对象并为id:
添加getterpublic function getId() {
return $this->id;
}
答案 1 :(得分:0)
你可以在SaveResult
类中调用一个方法来访问数据,例如:
$response[0]->getId();
请参阅该课程的文档/源代码。
答案 2 :(得分:0)
您可以使用ReflectionProperty接口读取受保护的属性。
phptoolcase库中的 HandyMan 组件有一个方便的方法来读取不可访问的对象属性。
$value = PtcHandyMan::getProperty( $your_object , 'propertyName');
单例类的静态属性:
$value = PtcHandyMan::getProperty( 'myCLassName' , 'propertyName');
非常简单和有用,虽然仅在少数情况下提供建议,因为受保护/私有财产不应在其范围之外使用。
您可以在此处找到 HandyMan 课程:http://phptoolcase.com/guides/ptc-hm-guide.html