只是想知道是否有PHP只是在给定文件名(controller.php)的情况下运行某个类?
我不想在controller.php中要求,包含或看到它的任何迹象。我只是希望它在那里。
编辑:好的。我的意思是run是在某个隐藏的文件中我说的是... $ class = new Class();这样我就可以在我的controller.php中使用$ class另外:我正在运行PHP 5.3 - 所以我有名称空间等等。
无论如何这样做?
谢谢! 马特穆勒
答案 0 :(得分:5)
我会大肆猜测你的意思。我认为你只是希望将你的PHP类文件与主文件分开而不做任何明显的包含。
如果是这样,您可能想要使用__autoload()功能:
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
这将注意到MyClass1和MyClass2尚未定义,并将以其类名作为参数调用自动加载功能。那么MyClass1.php和MyClass2.php将是require_once'd。
答案 1 :(得分:3)
你可以autoload the Class file,你仍然需要在某个时候手动实例化Class。或者您必须包含一个为您实例化的脚本。或者您重新构建应用程序,以便您的实际脚本包含在另一个脚本中,该脚本会为您预先实例化该类。
简而言之:包括文件可以自动化,实例化Class不是那么多。