2017-04-10 52 views
0

我有我的代码有问题。类的对象不能转换int

我不明白这样的错误:

Notice: Object of class stdClass could not be converted to int in C:\wamp\www\Site\include\fonction_panier.php on line 136

我行136:

return $total + $total*$_SESSION['panier']['tva']/100;

这条线路是在这个函数:

function montantlGlobalTVA() { 
    $total = 0; 

    for ($i = 0; $i<count($_SESSION['panier']['libelleProduit']); $i++) { 
     $total += $_SESSION['panier']['qteProduit'][$i]*$_SESSION['panier']['prixProduit'][$i]; 
    } 

    return $total + $total*$_SESSION['panier']['tva']/100; 
} 

TVA是在我的数据库:

$select = $db->query("SELECT tva FROM produits"); 
     $tva = $select->fetch(PDO::FETCH_OBJ); 
     $_SESSION['panier']['tva']= $tva; 

当我做了var_dump()

<td><?php echo var_dump($_SESSION['panier']['tva'])." %";?></td> 

我得到这样的结果:

object(stdClass)[1] public 'tva' => string '18' (length=2)

+0

这是说$ _SESSION ['panier'] ['tva']'不是一个整数,这意味着你不能用它做数学。回应它,看看它是什么。 –

+0

你可以使用''(int)''例如''$ total + =(int)$ _SESSION ['panier'] ['qteProduit'] [$ i] *(int)$ _SESSION ['panier'] ['prixProduit'] [$ i];'' – alistaircol

+0

可能[参考 - 这是什么错误在PHP中意味着什么?](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – miken32

回答

1

我敢打赌,你正在试图获得列tva的价值。在使用策略PDO::FETCH_OBJ进行提取时,每行都将作为对象返回。

您可以通过调用该对象的tva属性集获得的价值被fetch()返回:

$row = $select->fetch(PDO::FETCH_OBJ); 
$_SESSION['panier']['tva']= $row->tva; 

而是在会话返回行(对象),从数据库中检索实际值现在存储在会话中。

1
$select = $db->query("SELECT tva FROM produits"); 
     $tva = $select->fetch(PDO::FETCH_OBJ); 
     $_SESSION['panier']['tva']= $tva; 

直形式php.net:

PDO :: FETCH_OBJ:返回与属性名称的匿名对象对应于列名在结果集返回 http://php.net/manual/en/pdostatement.fetch.php

也许你想使用PDO :: FETCH_ASSOC?

+0

当我把PDO :: FETCH_ASSOC!我有一个其他错误 '致命错误:不支持的操作类型在C:\ WAMP \ WWW \网站\ \包括在fonction_panier.php线136' 我尝试删除happen.Do你有一个想法的划分,但没有? – Kievrancois

+0

和哪些代码在第136行? –

+0

This: 'return $ total + $ total * $ _ SESSION ['panier'] ['tva']/100;'' – Kievrancois

相关问题