2013-10-13 80 views
2

我已經作出了小乘法函數類stdClass的的PHP對象無法轉換爲字符串

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

這裏的價格值從requiste產品的數據庫中提取與由固定0.26可變倍數。想知道爲什麼會出現這種錯誤 -

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

我正在學習PHP的基礎知識。有人可以建議如何解決它嗎?

謝謝

+4

當你寫PHP,請記住,你永遠不能嵌套''塊。當你到達'$ a =「<?php'時,你已經在第一行的一個<?php區塊內(我們還沒有看到關閉的''>'),所以這就是停止製作的地方你試圖將$ a設置爲字符串'<?php echo $ this-> prodDet-> v_price?>',這是有效的,但不是你想要做的。作爲一個副作用,它試圖評價'$ this'作爲一個字符串,因爲你使用[雙引號](http://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and-double-quoted -strings-in-php)。 –

+0

是的,謝謝馬特 – Ruchika

回答

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);進行檢查)

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(); 
0

隨着原始變量和字符串,$ NAME =「查理」;

對象存儲許多相關的東西在一起。字符串,數字,布爾值等被存儲爲對象的屬性。屬性通過對象運算符(「箭頭運算符」)進行訪問,如$ person-> name =「Charlie」;

2

我也得到同樣的錯誤消息是

enter image description here

一小時後檢查一切,我發現,我已經做了一些小的錯誤,是我獲取數據時使用的變量符號($)的兩倍。 這是

enter image description here

刪除一個美元符號它的正常工作後,也可能是幫助別人:)

相關問題