spl_autoload_register
クラスをロードするために使用しています。
ファイルをindex.php
含むファイルがありinit.php
ます。spl_autoload_register
関数はファイルで呼び出されますinit.php
。
ファイルではindex.php
、適切に動作します。クラスなどを作成でき、それらの名前は解決されます。
しかし後で、特定のタスクを実行するためindex.php
に別のファイルを に含めます。work.php
奇妙なことに、work.php
私が使用しているクラスが見つかりません。
spl_autoload_register
でもう一度を呼び出すとwork.php
、クラスを解決できます。
奇妙な点は、この動作に一貫性がないことです。テスト サーバーではspl_autoload_register
呼び出しを複製する必要はありませんが、運用サーバーでは必須です。
にいくつかのオプションがありphp.ini
ませんか?
編集/更新:init.php
念のため、ファイルの内容を次に示します。
<?php
function my_autoload($class){
include 'class/' . $class . '.class.php';
}
spl_autoload_register('my_autoload');
?>
そして私のindex.php:
<?php
require_once 'include/init.php';
$barcode = new Barcode();
// here is a bunch of test and stuff
include 'work.php';
?>
そして私のwork.php:
<?php
$myObj = new Barcode();
// more useles stuff
?>
バーコードは、index.php コード部分では問題なく作成されますが、work.php 部分では失敗します...