В моем демонстрационном проекте я хочу получить доступ к статической переменной некоторого класса, но эти имена переменных проходят динамически. пытаюсь использовать переменную функцию, как приведено ниже:Ошибка в переменной функции доступа как статическая переменная
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;
}
Это дает мне ошибку
Fatal error: Access to undeclared static property: ProductPeer::$filter_field_name in /home/sfprojects/shopme/lib/product/ProductDb.php on line 47
Хотя, если я использую ProductPeer::STATUS
вместо ProductPeer::$filter_field_name
то он работает.
Что здесь не так?
Yup, работает отлично! Благодарю. хотя я не знаю причины этого, если вы можете объяснить причину доступа через постоянную функцию, тогда было бы полезно – Rupal
Я полагаю, что '' 'обращается только к свойствам класса, тогда как константы - это отдельная языковая конструкция, которая работает по-разному , –