In meinem Demo-Projekt möchte ich auf statische Variable einer bestimmten Klasse zugreifen, aber diese Variablennamen werden dynamisch übergeben. Ich versuche Funktion Variable zu verwenden, wie unten angegeben:Fehler in Zugriffsfunktionsvariable als statische Variable
public function filterBy($params)
{
foreach ($params as $key=>$value) {
$filter_field_name = strtoupper($key);
$this->criteria->add(ProductPeer::$filter_field_name, $value, Criteria::EQUAL);
}
return $this;
}
Es mir
Fatal error: Access to undeclared static property: ProductPeer::$filter_field_name in /home/sfprojects/shopme/lib/product/ProductDb.php on line 47
Obwohl gibt Fehler, wenn ich ProductPeer::STATUS
statt ProductPeer::$filter_field_name
verwenden dann funktioniert es.
Was ist hier falsch?
Yup, funktioniert perfekt! Vielen Dank. obwohl ich Grund dahinter nicht kenne, wenn Sie Grund hinter dem Zugriff über konstante Funktion sagen können, dann wäre es hilfreich – Rupal
Ich nehme an, dass das '$' greift nur auf Eigenschaften der Klasse, während Konstanten sind ein separates Sprachkonstrukt, das anders funktioniert . –