gpt4 book ai didi

PHP 命名空间和自动加载不起作用

转载 作者:行者123 更新时间:2023-12-04 16:57:43 25 4
gpt4 key购买 nike

我有一个名为 Query.php 的文件。

namespace Test
{
class Query
{
public function __construct()
{
printf("Hello, World");
}
}
}

在 bootstrap.php 我尝试调用它:
spl_autoload_register(function($className) {
if(file_exists('../folder/'.$className.'.php'))
{
require_once '../folder/'.$className.'.php';
}
});

new \Test\Query();

结果: fatal error :未找到类 Test\Query。

没有命名空间它工作正常。如何解决?

提前致谢。

最佳答案

您必须更换 \DIRECTORY_SEPARATOR .

define('BASE_PATH', realpath(dirname(__FILE__)));
spl_autoload_register(function($className) {
if(file_exists(BASE_PATH . '../folder/'. str_replace('\\', DIRECTORY_SEPARATOR , $class). '.php'))
{
require_once '../folder/'.$className.'.php';
}
});
这是假设您的目录结构如下

/folder/boostrap.php

/folder/Test/Query.php


How do I use PHP namespaces with autoload?

关于PHP 命名空间和自动加载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26300777/

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