PHP中的名称空间和set_include_path()有问题
C:\xampp\htdocs包含Controller.php和ApplicationHelper.php。C:\xampp\htdocs\site包含index.php 以下是我得到的错误: 致命错误:在第17行的C:\xampp\htdocs\controller.php中找不到类“site\controller\ApplicationHelper” 我对整个名称空间业务都是新手,但我不能100%肯定这就是它背后的原因。尽管我将include路径设置为在该文件夹中查找,但它似乎没有找到ApplicationHelper.php。如果我在Controller.php中直接包含ApplicationHelper.php,它就会工作。以下是(相关)代码: index.phpPHP中的名称空间和set_include_path()有问题,php,namespaces,set-include-path,Php,Namespaces,Set Include Path,C:\xampp\htdocs包含Controller.php和ApplicationHelper.php。C:\xampp\htdocs\site包含index.php 以下是我得到的错误: 致命错误:在第17行的C:\xampp\htdocs\controller.php中找不到类“site\controller\ApplicationHelper” 我对整个名称空间业务都是新手,但我不能100%肯定这就是它背后的原因。尽管我将include路径设置为在该文件夹中查找,但它似乎没有找到App
set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\xampp\htdocs');
require('Controller.php');
\site\controller\Controller::run();
namespace site\controller;
class Controller {
private $applicationHelper;
private function __construct () {}
static function run () {
$instance = new Controller();
$instance->init();
}
function init () {
$applicationHelper = ApplicationHelper::instance();
$applicationHelper->init();
}
}
namespace site\controller;
class ApplicationHelper {
private static $instance;
private function __construct () {}
static function instance () {
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
function init() {
}
}
Controller.php
set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\xampp\htdocs');
require('Controller.php');
\site\controller\Controller::run();
namespace site\controller;
class Controller {
private $applicationHelper;
private function __construct () {}
static function run () {
$instance = new Controller();
$instance->init();
}
function init () {
$applicationHelper = ApplicationHelper::instance();
$applicationHelper->init();
}
}
namespace site\controller;
class ApplicationHelper {
private static $instance;
private function __construct () {}
static function instance () {
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
function init() {
}
}
ApplicationHelper.php
set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\xampp\htdocs');
require('Controller.php');
\site\controller\Controller::run();
namespace site\controller;
class Controller {
private $applicationHelper;
private function __construct () {}
static function run () {
$instance = new Controller();
$instance->init();
}
function init () {
$applicationHelper = ApplicationHelper::instance();
$applicationHelper->init();
}
}
namespace site\controller;
class ApplicationHelper {
private static $instance;
private function __construct () {}
static function instance () {
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
function init() {
}
}
谢谢你的帮助 您需要包括ApplicationHelper.php或使用自动加载器
function __autoloader($class_name)
{
include $class_name . "php";
}
请看以下内容:谢谢。我现在明白了。是把它放在index.php中还是放在每个使用它的类中?