2016-08-26 2 views
1

Я очень новичок в ООП. И я читал, что производный класс может получить доступ к общедоступным и защищенным членам базового класса.Основное наследование в laravel

A.php

<?php 
namespace App\Http\Controllers; 
class A extends Controller 
{ 
     public $x=5; 
     public function index() 
     {...} 
} 

и B.php

<?php 
namespace App\Http\Controllers; 
class B extends A 
{ 
    public function index() 
    { 
      print_r($x); 
    } 
} 

почему $x не доступны из производного класса? У меня есть этот маршрут:

Route::get('/B/index','[email protected]'); 

я получил ошибку:

undefined variable x.

+0

Вы вызываете функцию непосредственно из класса 'тел b' в. Вам нужно обернуть его методом. Также обновите свой вопрос и сообщите нам, какую ошибку вы получите. – linuxartisan

+0

@linuxartisan i получает неопределенную переменную x. – Steve

ответ

3

Внести следующие изменения в коде:

class B extends A 
{ 
    public function get() 
    { 
     echo $this->x; // will echo the value in variable $x; 
    } 
} 

$obj = new B; 
$obj->get(); 
3

Пожалуйста, измените код, как показано ниже. он покажет результат.

class A 
{ 
     public $x=5; //or protected $x=5; 
     public function index() 
     { 
     echo "A"; 
     } 
} 

class B extends A 
{ 
    public function index() 
    { 
     echo $this->x; 
    } 

} 

$classB = new B(); 
$classB->index(); 

вы можете использовать: http://phptester.net/ для тестирования онлайна

Я надеюсь помочь вам

+0

Если вы хотите запустить эхо «A». Используйте $ classA = new A(); $ ClassA-> индекс(); Спасибо! – hunglevan

Смежные вопросы