Задать вопрос
65536
@65536

Почему доступны приватные свойства?

Вот в таком случае.

class Test
{
    private $x = 123;
    
    public static function create()
    {
        $test = new self;
        
        print $test->x;
    }
}

Test::create(); // 123

https://3v4l.org/i8FF2

Как это называется, что можно почитать об этом?
  • Вопрос задан
  • 420 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@levantez
Они всегда будут доступны внутри методов, но в случае private не будут доступны как Test->x, а в случае protected будут доступны в методах дочерних классов
Ответ написан
AnnaVel
@AnnaVel
Приватная переменная доступна внутри класса, в котором она объявлена.
Если вы попытаетесь обратиться к приватной или защищенной переменной вне класса, тогда уже будет ошибка.

У вас $test->x; находится внутри метода, который находится внутри класса, в котором объявлена приватная переменная х. Внутри класса приватная переменная не приватная)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽