【发布时间】:2015-01-15 09:44:41
【问题描述】:
我正在使用一个简单的 MVC 框架,我使用以下调用在控制器的每个函数中加载模型:
$member_model = $this->loadModel('Members');
我想做的是调用一次,这样成员控制器中的每个函数都可以使用它,而不是在每个函数中调用它。
类似:
class Members extends Controller
{
private $member_model = $this->loadModel('Members');
function myFunction(){
myvar = $member_model->someFunction();
}
}
注意: loadModel 是 Controller 类的方法,Members 控制器扩展了它。
我得到一系列不同的错误,具体取决于变量是私有/公共还是两者都不是,但是它在函数中起作用。
是否有可能在班级级别做到这一点,如果可以,如何做?
更新 1
成员控制器
class Members extends Controller
{
private $member_model = null;
function __construct()
{
parent::__construct();
$this->member_model = $this->loadModel('Members');
}
}
控制器类
class Controller
{
function __construct()
{
Session::init();
try {
$this->db = new Database();
} catch (PDOException $e) {
die('Database connection could not be established.');
}
$this->view = new View();
}
public function loadModel($name)
{
$path = MODELS_PATH . strtolower($name) . '_model.php';
if (file_exists($path)) {
require MODELS_PATH . strtolower($name) . '_model.php';
$modelName = $name . 'Model';
return new $modelName($this->db);
}
}
}
【问题讨论】:
标签: php class-variables variable-declaration