에 내가 가지고있는 다음과 같은 PHP 코드 : 표준 \의 handler.php \네임 스페이스 자동로드는 Windows에서 작동하지만 리눅스
index.php를
<?php
spl_autoload_extensions(".php");
spl_autoload_register();
use modules\standard as std;
$handler = new std\handler();
$handler->delegate();
?>
모듈
<?php
namespace modules\standard {
class handler {
function delegate(){
echo 'Hello from delegation!';
}
}
}
?>
Windows 7에서 WAMP를 실행하면 "Hello from Delegation!"메시지가 생성됩니다. 그러나 리눅스에서, 나는 다음과 같은 얻을 :
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을 실행하고, 리눅스는 우분투 9.10 아래 5.3.2 dotdeb 패키지를 실행 중입니다. 그래서, 그것은 네임 스페이스에 대한 지식이 없습니다 -
내 리눅스 상자에이 구성 문제인가, 아니면 그냥 길 네임 스페이스의 차이와 자동 로딩은 서로 다른 운영 체제
이 경우는 아니지만 spl_autoload-register()는 클래스 이름을 소문자로 변환하므로 camelCase 이름 (https://bugs.php.net/bug.php?id)을 사용하면 Unix에서 중단됩니다. = 53065) –