gpt4 book ai didi

php - 命名空间自动加载在 Windows 下有效,但在 Linux 上无效

转载 作者:可可西里 更新时间:2023-10-31 22:13:44 25 4
gpt4 key购买 nike

我有以下 php 代码:

index.php

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

use modules\standard as std;

$handler = new std\handler();
$handler->delegate();
?>

modules\standard\handler.php

<?php
namespace modules\standard {
class handler {
function delegate(){
echo 'Hello from delegation!';
}
}
}
?>

在 Windows 7 下,运行 WAMP,代码生成消息“Hello from Delegation!”但是在 Linux 下,我得到以下信息:

Fatal error: spl_autoload(): Class modules\standard\handler could not be loaded in /var/www/index.php on line 15

Windows 在 WAMP 下运行 PHP 5.3.0,Linux 在 Ubuntu 9.10 下运行 5.3.2 dotdeb 包。

这是我的 linux 机器上的配置问题,还是只是在不同操作系统上处理命名空间和自动加载的方式不同

最佳答案

SPL 自动加载器非常原始——它不知道命名空间,因此它尝试加载名称中包含\的文件,而在 Linux/Unix 上,路径分隔符是/而不是。

关于php - 命名空间自动加载在 Windows 下有效,但在 Linux 上无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862133/

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