我寫了一個自動加載器類。但是include_once
函數不包含我需要的文件。變量超出範圍時使用include_once
Cls.php(路徑:CLS /)
<?php
class fileup{
function dup($a){
$x=strip_tags($a);
$d=__DIR__."/".$x.".cls.php";
echo $d; ///storage/emulated/legacy/htdocs/yeni/sinif/ayar.sinif.php
if(file_exists($d)){
include_once $d;
}else{
die($a." Class not found :(");
}
}
}
$dup=new fileup();
spl_autoload_register(array($dup,"dup"));
?>
Theme.cls.php主題類(路徑:CLS /)
<?php
include_once("cls.php");
$dup->dup("conf");
?>
Conf.cls.php站點配置類(路徑:CLS /)
<?php include_once("cls.php"); $dup->dup("db"); ?>
的index.php(路徑:/)
<?php
include_once("theme.cls.php");
?>
點
錯誤的詳細信息:
Fatal error: Uncaught Error:
Call to a member function dup() on null in /storage/emulated/legacy/htdocs/yeni/sinif/conf.cls.php:3
Stack trace:
#0 /storage/emulated/legacy/htdocs/yeni/sinif/cls.php(12):
**include_once() #1**
/storage/emulated/legacy/htdocs/yeni/sinif/theme.cls.php(3):
dup->dup('conf') #2
/storage/emulated/legacy/htdocs/yeni/index.php(2):
include_once('/storage/emulat...') #3
{main} thrown in /storage/emulated/legacy/htdocs/yeni/sinif/conf.cls.php on line 3
您沒有使用自動加載,因爲它應該被使用。直接調用自動加載器功能沒有任何意義。你的代碼有更多的問題,但在進入這個之前,你應該花更多的時間研究基礎知識。 – yivi
我明白,但我學習php oop我不明白錯誤,我該如何解決它。你看到錯誤的代碼 –
四周。不會爲你重寫你的代碼。您錯過了對主題的基本理解,以便能夠提出有關此問題的質量問題。基本上,您使用自動加載器是錯誤的,而且您的自動加載器寫得很糟糕(它不應該在找不到時「死掉」,只是返回以便其他自動加載器也可以工作)。 – yivi