abstract class BaseController
{
protected $arctica, $database, $content, $cacheTime;
function __construct($arctica)
{
$this->arctica = $arctica;
$this->config = $arctica->config;
$this->database = $arctica->database;
}
class Controller extends BaseController
{
protected $cacheTime = 2;
protected $database = 'override'; //trying to override database var
function __construct($arctica)
{
parent::__construct($arctica);
}
function Run()
{
var_dump($this->database); //A class instance, not string('override')
$this->load('homepage');
}
}
我想问一些关于这门课的事情。
Q1:如果我想到达$database variable of child class
,我该如何到达?
Q2:我怎样才能确保$database variable in parent class
不能被子类改变/覆盖,即使是在自己?($database 应该是一个保持数据库实例的常量,因此 Controller 子级不应该触摸它。)现在就是这样,但我不知道为什么。
Q3:如何为我创建的变量添加更多参数?就像受保护的 $var protected const $var
对我来说更有意义。它只是 PHP 不支持,还是 OOP 根本不支持?(也许它受支持,我不知道如何?)
Q4:如果我在父类中定义了一个方法,我可以不使用$this来访问它吗?喜欢load('homepage')
。
非常感谢!