PHP调用WebService返回stdClass对象如何提取HTMLStructure字段值
问题原因
你当前得到的$result本身是PHP的stdClass结构化对象,不是字符串。你看到的对象结构文本是print_r/var_dump输出的调试内容,不是$result变量本身的存储值,所以用字符串匹配函数strstr、strpos去操作对象自然匹配不到内容,才会进入else分支输出Not found。
正确实现方法
因为是嵌套的stdClass结构,直接通过对象属性访问语法(->)就可以直接读取对应字段的值,无需做复杂的字符串截取:
// 直接访问嵌套对象属性取值 $HTMLStructure = $result->Post_Added_Record_ByMenuIDResult->HTMLStructure; // 输出验证 echo $HTMLStructure;
如果担心某个层级的属性不存在抛出错误,可以增加判断逻辑提升代码健壮性:
兼容PHP7及以上版本的写法
if (isset($result->Post_Added_Record_ByMenuIDResult->HTMLStructure)) { $HTMLStructure = $result->Post_Added_Record_ByMenuIDResult->HTMLStructure; echo $HTMLStructure; } else { echo "HTMLStructure字段不存在"; }
PHP8+ 简化写法
可以用null安全运算符避免多层isset判断:
$HTMLStructure = $result?->Post_Added_Record_ByMenuIDResult?->HTMLStructure ?? "字段不存在"; echo $HTMLStructure;
内容的提问来源于stack exchange,提问作者Mohadeseh
相关产品推荐
相关产品推荐

