問題是自動加載多個文件包括未加載。
直接加載函數而不使用spl_autoload_register()的自動加載是否正確?直接加載函數而不使用自動加載是否正確?
文件:
-class(folder)
--cls.php (file)
--db.cls.php(file)
--config.cls.php(file)
-index.php(file)
mp3.cls.php
文件:cls.php
<?php
class dosya
{
static function yukle($a)
{ $d=__DIR__.DIRECTORY_SEPARATOR.str_replace('\\','/',$a).".cls.php";
if(file_exists($d))
{
include_once($d);
}
else{
return self::yukle($a);
die($a." sınıfı bulunamadı :(");
}
}
}
?>
文件:mp3.cls.php
<?php
include_once("cls.php");
dosya::yukle("config");
dosya::yukle("db");
class mp3 extends db {}
?>
文件:config.cls.php
<?php
include_once("cls.php");
dosya::yukle("db");
class config extends db {}
?>
文件:db.cls.php
<?php include_once("cls.php");
class db {}
?>
的index.php
<?php
include_once("mp3.cls.php");
$b=new mp3();
?>
最新版本正常工作 –
您的問題可能與命名慣例有關。你的班級被命名爲'dosya',但是存在於'cls.php'裏面,文件名和班級名稱應該匹配。像這樣的'mp3.cls.php'這樣的名字也不符合PSR標準慣例。 (帶額外的'.') – ArtisticPhoenix
唯一的問題未定義的變量$ dosyal 2.error yukle()null。現在可能已經修復:/ –