Cтатические переменные в трейте

Sufir

Я не волшебник, я только учусь
http://php.net/manual/ru/language.oop5.traits.php написал(а):
На статические переменные можно ссылаться в методах трейта, но нельзя определить статические переменные в трейте.
PHP:
trait Singleton {

    protected static $_instance; // Я предполагал, что речь об этом
    
    public static function getInstance()
    {
        if (null === self::$_instance) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
}

class User {
    use Singleton;
    
    public $name = 'Тони';
}

$user = User::getInstance();
echo $user->name; // Тони
$user->name = 'Джони';

$user2 = User::getInstance();
echo $user2->name; // Джони
Но код прекрасно работает... Что подразумевается под "нельзя определить статические переменные в трейте"?

P.S.: Парсеру можно новое слово для подсветки добавить.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Нет, это статические свойства.
А статические переменные это
PHP:
protected function getName()
{
 static $name = 'Василий';
}
 
Сверху