我有一个“搜索”类,仅在某些情况下使用。是否需要“搜索”的决定是在“setupPage”函数的“页面”类中进行的。是否可以(是不是很好的编码),在另一个类中包含一个类?
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();
}
}
}
答案 0 :(得分:2)
我不会这样做。如果你只想加载你的类,如果需要它们,我建议你使用PHP的自动加载。 Here is the Documentation.
答案 1 :(得分:2)
这样做绝对没问题,但你也有其他选择。你可能想看看php的自动加载功能
function __autoload($class_name) {
include $class_name . '.php';
}
每当您实例化一个新类时。 PHP使用一个参数自动调用__autoload
函数,即类名。考虑下面的例子
$user = new User():
当您在此处实例化用户对象时,将调用自动加载功能,它会尝试包含来自同一目录的文件。 (参考上述自动加载功能)。现在你可以实现自己的逻辑来自动加载类。无论它驻留在哪个目录中。有关更多信息,请查看此链接http://in.php.net/autoload。
答案 2 :(得分:0)
这不应该是一个问题,如果你使用autoloading,这件事情就会发生。