Articles of Статические методы

__callStatic не обрабатывает отсутствующие статические вызовы

class Foo { public function bar(){ echo "Non-static\n"; } public static function __callStatic($name, $arguments) { if ($name === 'bar') { echo "Static\n"; } } } Foo::bar(); Класс Foo не имеет статического метода. Вот почему я ожидал, что Foo::bar() будет обрабатываться методом __callStatic . К сожалению, для меня это почему-то не происходит. Вместо статического метода вызывается […]

Почему статические методы являются неустойчивыми?

Почему статические методы являются неустойчивыми? Пожалуйста, продемонстрируйте (в PHP, если это возможно).

Вызов статического метода из имени строки в PHP

Мне нужно вызвать статический метод класса, но у меня есть только имя класса, а не его экземпляр. Я делаю это так. $class = new "ModelName"; $items = $class::model()->findAll(); Он работает на моем компьютере, но когда я unexpected T_PAAMAYIM_NEKUDOTAYIM на сервер, он выдает unexpected T_PAAMAYIM_NEKUDOTAYIM , поэтому я думаю, что он действительно ожидает, что модель будет […]

Использование real_escape_string MySQLi в качестве статической функции

Мне интересно, могу ли я избежать строк (используя real_escape_string) без предварительного создания экземпляра объекта для применения функции? т.е. мы можем это сделать: $database = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME); $database->real_escape_string($query); $database->query($query) и т.п. Однако то, что я пытаюсь сделать для согласованности в моем приложении, состоит в том, чтобы иметь в основном статический класс базы данных, который является расширением […]

Получение имени дочернего класса в родительском классе (статический контекст)

Я создаю библиотеку ORM с повторным использованием и простотой; все идет хорошо, за исключением того, что я застрял от глупого ограничения наследования. Пожалуйста, рассмотрите приведенный ниже код: class BaseModel { /* * Return an instance of a Model from the database. */ static public function get (/* varargs */) { // 1. Notice we want […]