Вызов функции класса верхнего уровня в php - PullRequest
0 голосов
/ 13 марта 2019

У меня есть сценарий, в котором у меня есть три отдельных файла классов A.php, B.php, C.php.

A.php - независимый файл, имеющий некоторые функции, и «B» расширяет «A», а «C» расширяет «B».

Здесь В файле «C.php» я могу получить доступ к функции «B.php», но не «A.php».

Вот моя структура -

В A.php -

class A {
    public function testA(){
        echo "AA";
    }
}

В B.php -

class B extends A{
    public function testB(){
        echo "BB";
    }
}

In C.php -

class C extends B{
    //Here i am able to call class B's function like 
    public function testC(){
        $this->testB();
    }

    //but not able to call Class A's function 
    public function testC1(){
        $this->testA();  // Here its giving error
    }
}

Пожалуйста, дайте мне знать, это правильный способ сделать это. Как я могу получить доступ к функции «A.php» в «C.php»

Привет

1 Ответ

0 голосов
/ 13 марта 2019

Если вы публикуете сообщение об ошибке, скорее всего, его недостаточно, не так ли?Это потому, что в вашем коде есть бесконечный цикл.

В классе C у вас есть

public function testB() 
{ 
    $this->testB(); 
} 

, который является методом, который вызывает его самостоятельно навсегда, используя всю память, которая у вас есть.

Если вы хотите вызвать testB() из родительского класса, вы должны назвать его следующим образом:

public function testB() 
{ 
    parent::testB(); 
} 

Если вы расширили класс и изменили метод (например, testB())в вашем C классе) и хотите вызвать реализацию родителей, вам нужно вызвать ее, используя parent:: вместо $this->.

Вот демонстрационная версия

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