将变量从主类继承到扩展类PHP
我试图使子类(feed)从主类(controller)继承一个变量 我有3个文件。它们如下所示 核心文件:将变量从主类继承到扩展类PHP,php,class,variables,object,inheritance,Php,Class,Variables,Object,Inheritance,我试图使子类(feed)从主类(controller)继承一个变量 我有3个文件。它们如下所示 核心文件: /* ----------------------------- * * LOAD THE CONTROLLER CLASS NOW * * ----------------------------- */ require(CORE_PATH . 'controller.php'); require(CORE_PATH . 'load_controller.php');
/* ----------------------------- *
* LOAD THE CONTROLLER CLASS NOW *
* ----------------------------- */
require(CORE_PATH . 'controller.php');
require(CORE_PATH . 'load_controller.php');
控制器类:
<?php
class Controller {
var $sessions, $a;
public function __construct() {
$this->sessions = new Sessions();
$this->a = 'yo';
}
}
修复方法:
<?php require(PROTECT);
class Controller {
protected $variable = "Setting the variable right here works.";
public function __construct() {
$this->variable = "Setting it right here will only work for the current object. It's as if variable isn't being set at all when it comes to other classes.";
}
}
除非您使用PHP4,否则应该避免使用var
声明类成员。使用公共、私人、受保护的
在您的情况下,由于您使用了var
,您的成员变量$a
应该可以从子类访问
是否有错误?仅仅因为类是相关的,并不意味着单独的对象实例将共享相同的数据。这不是它的工作原理。可能是@deceze的重复-这不是我想要做的。在这种情况下,这些实例并不重要。我只是尝试从Controller类继承$a和$sessions,并将其传递给Feeds类,后者扩展了Controller。当我尝试使用$this关键字访问$a变量时,它不起作用。另外,将变量范围从“var”更改为“Public”或“Public static”或“static”也不起作用。@deceze-事实上,现在我再看一遍,你是对的!我依赖构造函数方法来设置变量的值,而我应该在构造函数方法之前设置它。谢谢我有错误。我尝试过var、public、private、protected以及它们的组合。仍然不起作用。谢谢你。我现在无法查看错误日志,因此stackoverflow是我唯一的选择。英雄联盟
<?php require(PROTECT);
class Controller {
protected $variable = "Setting the variable right here works.";
public function __construct() {
$this->variable = "Setting it right here will only work for the current object. It's as if variable isn't being set at all when it comes to other classes.";
}
}