Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的名称空间和set_include_path()有问题_Php_Namespaces_Set Include Path - Fatal编程技术网

PHP中的名称空间和set_include_path()有问题

PHP中的名称空间和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

C:\xampp\htdocs包含Controller.phpApplicationHelper.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.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() {

    }

}
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中还是放在每个使用它的类中?