$memberID = $system->members->memberID();
我对 ->members->...
这部分完全感到困惑,请问它是如何工作的?
例如,假设我有一个名为 $systems
的类,那么我该如何在后面加上 ->members->
来运行 members 类呢?
我只知道如何进行以下操作:
$system = new system();
$memberID = $system->memberID();
但我想知道如何做到这一点:
$system = new system();
$memberID = $system->members->memberID();
谢谢!
-- 更新 -- 感谢所有帮助我到这一步的人!你们真的指导我走向了正确的方向,我现在有了一个很好的答案! :) 还要感谢编辑这个问题的版主,我对bbcode语法不熟悉,很抱歉。
我想要一个自动创建新类的东西,例如调用->members->时会自动使用__get()包含,而不必手动输入类似于“new members()”这样的内容。这有点难以解释,但我希望你能基本理解。
无论如何,这是我使用的代码:
<? class system {
public function __get($name){
$file = 'lib/'.$name;
if(file_exists($file)){
require_once($file);
$classname = $name;
$this->$name = new $classname($this);
return $this->$name;
}else{
die('Class '.$name.' could not be loaded (tried to load class-file '.$file.')');
}
}
现在,如果我想做类似于这样的事情:
$system = new system();
$system->members->functionHere();
它会自动创建一个成员类的新实例并从lib文件夹中要求文件。 如果这违反了规则,那么我道歉。我只是想为那些在谷歌搜索时遇到这个问题的人发布此帖子,因为我知道我总是在这里着陆!