我对OOP很新。我已经读过派生类可以访问基类的公共成员和受保护成员。
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','B@index');
我收到了错误:
未定义的变量x。
答案 0 :(得分:3)
在代码中进行以下更改:
class B extends A
{
public function get()
{
echo $this->x; // will echo the value in variable $x;
}
}
$obj = new B;
$obj->get();
答案 1 :(得分: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/在线测试
我希望能帮到你