2010-06-04 4 views
1

J'ai une erreur vraiment bizarre:Erreur capturable en PHP?

[04-Jun-2010 15:55:32] PHP Catchable fatal error: Object of class Type could not be converted to string in /home/prettykl/public_html/2010/includes/functions.php on line 140

Ceci est le code et la ligne 140 est la ligne $ sql.

if (!empty($type)) { 

    $sql = "SELECT * FROM `types` WHERE `type` = '$type'"; 
    $dbi = new db();  
    $result = $dbi->query($sql); 
    $row = mysql_fetch_row($result); 

    $dbi->closeLink(); 

    $where_array[] = "`typeID` = '".$row->typeID."'"; 
    $where_array[] = "`typeID2` = '".$row->typeID."'"; 
} 

J'ai 5 ou 6 classes et je n'ai jamais rencontré ce problème auparavant. La fonction n'a aucune référence aux classes, des idées?

Merci,

Stefan

Répondre

1

$type est un objet de la classe Type. Vous voulez probablement interroger une propriété de cet objet?

+0

En outre, utilisez print_r ($ type) pour savoir de quoi il s'agit réellement –

+0

$ type doit être une instance de Type, comme les états d'erreur. – nuqqsa

1

L'erreur signifie que $type est en fait un objet (de type de classe), de sorte que soit la variable $type ne contient pas ce que vous attendez, ou que vous voulez vraiment obtenir un membre de l'objet à la place, de sorte $type->getSomeString(), etc.

1

Cette erreur se produit lorsque vous essayez de convertir un objet en chaîne et que l'objet n'implémente pas la méthode __toString(). PHP ne peut pas gérer cette conversion. Par exemple:

$s = new stdClass(); 
echo $s; 

Catchable fatal error: Object of class stdClass could not be converted to 
string in php shell code on line 1 

Notez que vous produisez $type dans la requête, comme si elle était une chaîne.

+0

+1 pour une explication détaillée. –