Я никогда не видел такой код: public static function getInstance() { if ( ! isset(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } Это то же самое, что и new className() ? РЕДАКТИРОВАТЬ Если класс наследуется, на каком классе он указывает?
Я хотел бы иметь возможность сделать что-то вроде этого: class ThingIDs { const Something = 1; const AnotherThing = 2; } $thing = 'Something'; $id = ThingIDs::$thing; Это не работает. Есть ли простой способ сделать что-то эквивалентное? Обратите внимание, что я застрял в классе; это в библиотеке, которую я не могу переписать. Я пишу код, […]
Как создать класс с заданным массивом аргументов, который будет отправлен конструктору? Что-то вроде: class a { var $args = false; function a() {$this->args = func_get_args();} } $a = call_user_func_array('new a',array(1,2,3)); print_r($a->args); В идеале это должно работать без изменения класса, как в PHP4, так и в PHP5. Есть идеи?
Я понимаю, что есть два способа доступа к классу PHP – «::» и «->». Иногда мне кажется, что работает, а другой нет, и я не понимаю, почему. Каковы преимущества каждого из них и какова правильная ситуация для использования?