3

我做了一个小的乘法函数

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

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

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

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

谢谢

4

4 回答 4

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);在分配后的行中检查什么)

于 2013-10-13T07:17:17.587 回答
3

我也收到相同的错误消息

在此处输入图像描述

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

在此处输入图像描述

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

于 2016-03-20T03:45:31.187 回答
2

v_price在这些代码行之前的某个地方已将其设置为类实例。我的猜测是这发生在某处prodDet

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

要查看它是什么类型的课程,请尝试:

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

这将帮助您调试。


一个例子是在PHP: Catchable fatal error: Object of class stdClass could not be convert to string中,人们不小心将变量设置为这一行中的类:

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

然后他们尝试回$procID显并得到相同的错误。您不能回显一个类,因为它不能更改为字符串。


另外,当你这样做

$a = echo ...

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

$a = $this->prodDet->v_price->getSomeValue();
于 2013-10-13T07:18:29.917 回答
0

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

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

于 2015-08-22T21:29:44.997 回答