gpt4 book ai didi

php - PHP 中的命名空间和 set_include_path() 有问题

转载 作者:行者123 更新时间:2023-12-04 17:05:02 25 4
gpt4 key购买 nike

C:\xampp\htdocs 包含 Controller .php ApplicationHelper.php . C:\xampp\htdocs\site 包含 index.php .

这是我得到的错误:

fatal error :在第 17 行的 C:\xampp\htdocs\Controller.php 中找不到“站点\ Controller \ApplicationHelper”类

我是整个命名空间业务的新手,但我不能 100% 确定这就是它背后的原因。即使我将包含路径设置为在该文件夹中查找,它似乎也没有找到 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();

Controller .php
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();
}

}

ApplicationHelper.php
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";
}

关于php - PHP 中的命名空间和 set_include_path() 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com