У меня есть этот код из какой-то статьи на habrahabr.ru: abstract class Singleton { protected static $_instances = array(); protected function __construct() { } public static function getInstance() { $class = \get_called_class(); if ( !isset( static::$_instances[$class] ) ) static::$_instances[$class] = new static; return static::$_instances[$class]; } } Auhtor использует его, например, class B extends Singleton { […]
Один образец кода, который я получил с веб-сайта, но мне было сложно понять результат. Я использую код: class A { public static function foo() { static::who(); } public static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); } public static function who() { […]
Я всегда вижу, что люди в серьезных проектах используют :: везде, и -> только изредка в местной среде. Я использую только -> и никогда не попадаю в ситуации, когда мне нужно статическое значение вне класса. Я плохой человек? Насколько я понимаю, единственная ситуация, когда -> не будет работать, когда я пытаюсь: class StaticDemo { private […]
У меня есть несколько массивов, где хранятся возможные параметры для некоторых 3D-команд принтера. Я использую это, чтобы проверить, является ли команда законной. Я смущен тем, где я должен помещать эти массивы. Эти массивы будут доступны только в функции formatcheck, и функция будет вызываться много раз, так как есть тысячи команд для проверки. Должен ли я […]
Статическая переменная getcha в php Я из фона Java и недавно перешел на php для одного проекта. Я нашел одно неожиданное поведение в php. Значение, установленное для некоторой статической переменной, не остается постоянным по всем запросам. Я не уверен, что это ожидаемый бахавиус. Поскольку в java вы всегда можете использовать очень часто используемые переменные или […]
Я конвертирую библиотеку PHP 5.3 для работы на PHP 5.2. Главное, что стоит на моем пути, – использовать позднюю статическую привязку, такую как return new static($options); , если я преобразую это, чтобы return new self($options) , я получу те же результаты? В чем разница между new self и new static ?