php - 在php中包含另一个类中的一个类

标签 php class include

我有一个“搜索”类,它只在某些情况下使用。是否需要“搜索”的决定是在函数“setupPage”的类“page”中做出的。将一个类包含在另一个类中是否可以(编码是否良好)?

class Page {
    private function setupPage($page_id){
        switch($page_id){
            case 1:
            // do something
            break;

            case 2:
            include_once('class_search.php');
            // class search is singleton
            $this->search = Search::getInstance();
            // now I can use functions of 'search'
            $this->search->someSearchFunction();
        }
    }
}

最佳答案

这样做绝对没问题,但您还有其他选择。你可能想看看 php 的自动加载功能

function __autoload($class_name) {
    include $class_name . '.php';
}

每当您实例化一个新类时。 PHP 使用一个参数(即类名)自动调用 __autoload 函数。考虑下面的例子

$user = new User():

当您在此处实例化用户对象时,会调用自动加载函数,它会尝试包含同一目录中的文件。 (引用上面的自动加载功能)。现在您可以实现自己的逻辑来自动加载类。无论它位于哪个目录中。有关更多信息,请查看此链接 http://in.php.net/autoload .

关于php - 在php中包含另一个类中的一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434483/

相关文章:

c# - 什么是不一致的可访问性错误?

php - 使用 PHP 进行认证的随机数生成器

javascript - php/js JSON 未通过有效

python - “Class” 与 “namedtuple” 在 Python 中模拟牌组

php - 包含 localhost 的绝对路径

c++ - 预处理后如何查看包含文件的实际顺序?

c++ - 使用宏构造#include 指令的路径

php - Phalcon 路由器不工作

php - 从mysql数据库计算叶子

python - 让函数的唯一目的是调用另一个函数是个好主意吗?