Я пытаюсь настроить некоторые PHP-методы, которые можно вызывать в инстанцированных и статических контекстах. Каковы хорошие способы сделать это? Например, я хочу иметь возможность: Foo::bar($item); foo($item)->bar(); Я мог бы настроить два отдельных класса, и каждая функция изменяет thisArg и делегирует их другому, но похоже, что это лучший способ. Единственный способ, которым я мог бы это сделать, […]
С каких пор PHP позволяет вызывать статическую функцию как динамическую функцию? Я использую php 5.3.2 class weird{ public static function iamstatic($calledFrom){ echo "I am a static function called with a $calledFrom operator\n"; } public function test(){ self::iamstatic("static"); $this->iamstatic("dynamic"); } } $c = new weird(); $c->test(); weird::iamstatic("Static outside class"); $c->iamstatic("Dynamic outside class"); Эти результаты: I am […]
Я пытаюсь вызвать статический метод для класса с именами из другого класса с тем же пространством имен. Но другое имя класса содержится в переменной: <?php namespace MyApp\Api; use \Eloquent; class Product extends Eloquent { public static function find($id) { //…. } public static function details($id) { $product = self::find($id); if($product) { $type = $product->type; // […]