Страница 1 из 1

Позднее статическое связывание

Добавлено: 2020.01.14, 19:06
nulled
Привет!

шторм подсвечивает static::$name; как неопределенную.

Как ему дать понять что она в классе наследнике, или пробел в знаниях, что я делаю не так?
Можно в модель добавить static $name, но шторм все равно не выводит список где она используется.

Код: Выделить всё

class Model
{
    public static function find()
    {
        echo static::$name;
    }
}

class Product extends Model
{
    protected static $name = 'Product';
}

Product::find();	
ps: в интерфейсе все ок:

Код: Выделить всё

trait BuilderTrait
{
    protected static function isActive(int $active) : bool
    {
        return $active == static::IS_ACTIVE ? true : false;
    }
}

class Customer extends ActiveRecord
{
    use BuilderTrait;
    const IS_ACTIVE = 1;
}

Re: Позднее статическое связывание

Добавлено: 2020.01.14, 23:33
samdark
1. Никак.
2. А что, если в наследнике этой переменной не будет?

Re: Позднее статическое связывание

Добавлено: 2020.01.15, 10:50
nulled
samdark писал(а):
2020.01.14, 23:33
1. Никак.
2. А что, если в наследнике этой переменной не будет?
Тогда исключение