类stdClass的PHP对象无法转换为字符串

时间:2013-10-13 07:14:10

标签: php

我做了一个小的乘法函数

 <p><?php
 $a= "<?php echo $this->prodDet->v_price?>";
 $b=.26;
 $c=$a*$b;
 echo $c;
 ?>

这里价格值是从requiste产品的数据库中提取的,并且是固定的.26变量的倍数。想知道为什么会出现这种错误 -

Catchable fatal error: Object of class stdClass could not be converted to string in

我正在学习PHP的基础知识。有人可以建议如何解决它吗?

由于

4 个答案:

答案 0 :(得分:4)

你不知道你在这里尝试了什么?

$a = "<?php echo $this->prodDet->v_price?>";

$a照看<?php echo <the value of $this->prodDet->v_price>?>之类的作业。 <?php部分没有执行。你肯定想写:

$a = $this->prodDet->v_price;

确保$a不是最后的对象! (您可以通过分配后的行中的var_dump($a);查看)

答案 1 :(得分:2)

在这些代码行之前,已将

v_price设置为某个类实例。我的猜测是发生在prodDet的某个地方。

因此,当你echo时,PHP会尝试转换为字符串并失败。

要查看它是什么类,请尝试:

var_dump($this->prodDet->v_price);

这将有助于您调试。


一个例子是在PHP: Catchable fatal error: Object of class stdClass could not be converted to string中,该人意外地将变量设置为该行中的一个类:

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

然后他们尝试回显$procID并得到同样的错误。您无法回复课程,因为它无法更改为字符串。


另外,当你做

$a = echo ...

$a不符合您的期望,因为echo只是打印到屏幕上!它没有返回值。您要删除echo并直接设置:

$a = $this->prodDet->v_price->getSomeValue();

答案 2 :(得分:2)

我也得到了同样的错误信息

enter image description here

一小时后检查一切我发现我做了一些小错误,这是我在获取数据时使用变量符号($)两次。

enter image description here

删除一美元符号后它工作正常,可能会帮助某人:)

答案 3 :(得分:0)

使用原始变量和字符串,$ name =&#34; Charlie&#34 ;;

对象将许多相关的东西存储在一起。字符串,数字,布尔值等存储为对象的属性。使用对象运算符(&#34;箭头运算符&#34;)访问属性,例如$ person-&gt; name =&#34; Charlie&#34;;