PHP PDO-Objekt der Klasse konnte nicht in eine Zeichenfolge konvertiert werden
Ich erhalte die folgende Fehlermeldung unten auf das Objekt die Funktion in Smarty und ich bin mir nicht bewusst, wie das Problem zu beheben.
Fehler:
Catchable fatal error: Object of class users_class could not be converted to string
Dies ist das folgende Objekt und Funktion des Objekts, die ich verwende.
class users_class
{
public function fetchUser(array $conditions)
{
$db = Core::getInstance();
$sql = "SELECT * FROM ".USERS." WHERE ";
$i=0;
$params = array();
//$where = array();
foreach ($conditions as $column => $value)
{
if (preg_match('/^[a-z-.-_]+$/', $column)) {
if ($i!=0) {
$sql .= " AND ";
}
$sql .= "$column = ?";
$params[] = $value;
$i++;
}
}
//$sql .= implode(' AND ', $where);
//$sql .= " order by title asc";
$res = $db->dbh->prepare($sql);
$res->execute(array_values($params));
return $res->fetch(PDO::FETCH_ASSOC);
}
}
Dies ist der Aufruf in Smarty:
{section name=ststval loop=$ststres}
{if $ststres[ststval].type == 2}
{assign var='udatas' value="$userObj->fetchUser(array('id'=>$ststres[ststval].to_id));"}
- Entfernen Sie die Anführungszeichen um den Ausdruck, so
value="$userObj->fetchUser ..."
wirdvalue=$userObj->fetchUser ...
- Danach erhalte ich die folgende Fehlermeldung.
'SmartyCompilerException' with message 'Syntax Error in template "./templates/profile_left.tpl" on line 149 "{assign var='udatas' value=$userObj->fetchUser(array('id'=>$ststres[ststval].to_id))}" - Unexpected "=>", expected one of: "","" , ")
- Warum der negative Punkt, und was wurde bearbeitet?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich löste dies durch hinzufügen die __toString () - Methode auf das Objekt. Offenbar, das Objekt hat nur einen string zurückgeben. Das war verwirrend für mich, weil ich nicht wusste, was es sollte die Rückkehr und die Richtungen waren nicht klar auf php.net. Für eine person mit PHP zu beschäftigen, die Dinge so zu erklären, wenn um Hilfe gebeten, nicht darauf zu den gleichen Artikeln, jeder liest beim lernen von PHP. Ich glaube, wir kommen um Hilfe zu bitten, auf websites wie diese, da benötigen wir Erklärungen, die von Menschen mit höherem wissen. Ich nenne es faul und nicht hilfsbereit!
Klasse users_class
{
}
Konvertieren Sie ein Objekt in eine Zeichenfolge, auf diese Weise, müssen Sie eine Magische __toString() Methode definiert