Код Symfony, обращающийся к защищенному свойству, должен выдавать ошибку, но не - PullRequest
0 голосов
/ 06 ноября 2018

В Symfony 3.4.17 в Symfony\Component\Cache\Adapter\AbstractAdapter.php есть строка, которая вызывает предупреждение PHpStorm:

$this->createCacheItem = \Closure::bind(
        function ($key, $value, $isHit) use ($defaultLifetime) {
            $item = new CacheItem();
            $item->key = $key; //directly accessing protected property!
            $item->value = $value;
            $item->isHit = $isHit;
            $item->defaultLifetime = $defaultLifetime;

            return $item;
        },
        null,
        CacheItem::class
    );

Свойство $ key, $ value и т. Д. Являются защищенными свойствами CacheItem ();.

PHP должен выдавать исключение при непосредственном доступе к защищенным объектам, я дважды проверил это с помощью этого скрипта:

<?php
class test {
    protected $a = '';
}
$test= new test();
$test->a = 'b';
var_dump($test);

Это выдает 'PHP Fatal error: Uncaught Error: Невозможно получить доступ к тесту защищенного свойства :: $ a'.

Почему код Symfony работает без проблем, но мой скрипт (правильно) не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...