PHP:可捕获的 fatal error :类 stdClass 的对象无法转换为字符串

标签 php stdclass

运行附加代码时出现以下转储和错误。我感到困惑的是 $procID 似乎作为字符串返回,但是当我尝试再次传递它时,它是一个对象?我如何让它成为/保持字符串?谢谢。

object(stdClass)#2 (1) {
["processId"]=> string(13)
"Genesis114001" }  string(311)
"Genesis114001" string(293) " Genesis
" Catchable fatal error: Object of
class stdClass could not be converted
to string in
C:\wamp\www\SugarCE\testSOAPShawn.php
on line 15
<?php
set_time_limit(0);
require_once('nusoap.php');
require_once('BenefitSOAP.php');  //WSDL to PHP Classes
$client = new SoapClient('C:\wsdl\BenefitDeterminationProcess_BenefitDialogueServiceSOAP.wsdl', array('trace' => 1));
$procID = $client->start(array("prefix"=>"Genesis"));
$respXML = $client->__getLastResponse();
$requXML = $client->__getLastRequest();
echo "<p/>";
var_dump($procID);
//echo "<p/>";
var_dump($respXML);
//echo "<p/>";
var_dump($requXML);
$exchange = $client->exchangeOptions(array("processId"=>$procID)); //LINE 15
$end = $client->stop(array("processId"=>$procID));
?>

最佳答案

无论 $client->start() 方法返回什么,它都被键入为对象。您可以使用 -> 运算符访问对象的属性:

$procID = $client->start(array("prefix"=>"Genesis"));

...

$exchange = $client->exchangeOptions(array("processId"=>$procID->processId));

这可能是一个数组,但正在被输入到一个对象中。因此,您最终得到 stdClass .

另一种(可能是更好的)方法是输入返回值。这样,您就不必创建一个新数组以便稍后作为参数传递:

$procID = (array) $client->start(array("prefix"=>"Genesis"));

...

$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);

关于PHP:可捕获的 fatal error :类 stdClass 的对象无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032687/

相关文章:

php - 访问 stdClass 对象中的属性

java - stringByEvaluatingJavascriptFromString(iOS 方法,Android 等效方法是什么?)

php - laravel 如何使用查询构建器 DB::table(..) 和 DB::connection()

php - 在 Wordpress 站点中使用托管在 AWS S3 上的自定义字体

php - 让 HABTM 关系在 CakePHP 中独一无二

将对象转换为数组的 PHP 错误

javascript - 有没有办法用 stdClass 从 php 到 javascript 响应匿名函数

php - 如何访问数组的对象(stdClass Object)成员/元素的属性?

php - 如何附加一个 stdClass 对象

php - PHP伪随机有多随机,4个字节