有没有办法检查对象是否有任何字段?例如,我有一个肥皂服务器,我正在使用肥皂客户端查询,如果我调用一个get方法,我要么返回一个对象,其中包含定义我所做的肥皂查询的字段,否则我返回对象(stdClass)#3(0 ){}.
有没有办法判断对象是否有任何东西?
public function get($id){
try{
$client = new soapclient($this->WSDL,self::getAuthorization());
$result = $client->__soapCall('get', array('get'=> array('sys_id'=>$id)));
if(empty($result)){$result = false; }
}catch(SoapFault $exception){
//echo $exception;
$result = false;
}
return $result;
}//end get()
Run Code Online (Sandbox Code Playgroud)
此方法应该返回一个对象或false,我只接收一个没有字段的对象或一个带字段的对象.
Kev*_*han 22
更新以反映当前行为,5/30/12
empty()曾经为此工作,但empty()的行为已经多次改变.与往常一样,php文档始终是确切行为的最佳来源,并且这些页面上的注释通常提供了随时间变化的良好历史记录.如果你想检查缺少对象属性,目前一种非常防御的方法是:
if (is_object($theObject) && (count(get_object_vars($theObject)) > 0)) {
...
Run Code Online (Sandbox Code Playgroud)