gpt4 book ai didi

php - spl_autoload 类未在命名空间目录结构后找到

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

我正在尝试在我的项目中使用类自动加载。这是我写的:

在 main.php 上:

namespace myproject;

spl_autoload_extensions(".php");
spl_autoload_register();

subspace\myclass::mystaticmethod();

在子空间/myclass.php 上:
namespace myproject\subspace;

class myclass {

static function mystaticmethod() {

....

}

}

我收到此错误:
 PHP Fatal error:  Class 'myproject\\subspace\\myclass' not found

到目前为止,我只在文档中发现了区分大小写名称的问题,所以我只切换到小写,但我得到了同样的错误。为什么?

[编辑] 使用 PHP 5.3.3

最佳答案

我发现了问题:默认的包含目录是完整的 namespace/subspace小路。

我也找到了一个很好的解决方案。来自 http://www.php.net/manual/en/function.spl-autoload.php#92767 :

<?php
// Add your class dir to include path
set_include_path(get_include_path().PATH_SEPARATOR.'..');

// Make autoloader look for commonly used "myclass.php" type filenames
spl_autoload_extensions('.php');

// Use default autoload implementation
spl_autoload_register();
?>

默认的自动加载实现是用 C 编写的,并且总是比 PHP 略快。

关于php - spl_autoload 类未在命名空间目录结构后找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040574/

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