我有一个“搜索”类,它只在某些情况下使用。是否需要“搜索”的决定是在函数“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/