php - 快速 OOP 问题 - PHP

标签 php oop class function

在 OOP 中,有时你会看到类似这样的东西:

$memberID = $system->members->memberID();

我想知道 ->members->... 这部分是如何工作的?

例如,假设我有一个名为 $systems 的类,那么如何在它之后放置 ->members-> 来运行成员类(class)?

我只知道如何按照以下方式做一些事情:

$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 文件夹中的文件。

如果这违反了规则,那么我深表歉意。我只是想将此发布给在 Google 搜索时遇到此问题的任何人,因为我知道在使用 Google 搜索时我总是会登陆这里!

最佳答案

$system 变量包含一个对象,该对象具有名为 $members 的属性,该对象本身包含一个具有属性 $memberID 的对象/p>

$system = new system();
$system->members = new Members(); // or whatever it must be
$system->members->memberId();

关于php - 快速 OOP 问题 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5923148/

相关文章:

php - 如何使 "PHPmailer"在函数中工作

php - 如何在 PHP 中调用可调用函数?

php - 使用Cron作业删除表中的MySQL信息

php - 用 PHP 执行 Linux 命令?

PHP-JQuery-Ajax : How to Populate table with all results from mysql query result (json encoded array)

javascript - 在 Javascript ES6 的子类中扩展父类方法

Java:URL 还是字符串?

c++ - 类 - 从对象 vector 中删除特定对象

python - 如何通过 njit 函数中的引用来修改类属性?

具有可变数量参数的 Scala 类构造函数