Как назначить общедоступную переменную родительского класса общедоступной переменной дочернего класса в php

Я создал два класса, присваивая переменную общедоступного класса переменной дочернего класса, но не работая должным образом. Но одна и та же переменная правильно назначает работу внутри функции. Я не получил надлежащей причины, почему это так. Пожалуйста, проверьте пример ниже.

      <?php
          Class pratice{
            public $a=4;
           }
         Class child extends pratice{
            //public $b =$this->a;//getting error with this assigment
            public function getValue(){
            $this->b = $this->a;//working fine with this
            echo $this->b;
           }
         }
        $obj = new child();
        $obj->getValue();
       ?>

Заранее спасибо.

$this->a — это выражение, ссылающееся на активный объект. Вот почему его нельзя использовать в самом объявлении класса (на данный момент все статично), а только в методах (когда создается экземпляр объекта).
mario 13.03.2019 18:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну, $this относится к экземпляру класса, поэтому, пока вы не создадите экземпляр класса, $this недоступен.

Вам придется сделать это в конструктор, когда он может ссылаться на себя в нестатическом контексте.

class Child extends Practice
{

    public $b;

    public function __construct()
    {
        $this->b = $this->a;
        echo $this->b;
    }
}

Другие вопросы по теме