오토로더 클래스를 작성했습니다.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를 (경로 /)
,210오류 정보 :
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를 배우기 때문에 에러를 이해할 수 없다. 어떻게 해결할 수 있을까? 어디에서 잘못된 코드 –
을 볼 수 있습니다. 코드를 다시 작성하지 않습니다. 주제에 대한 기본적인 이해가 부족하다는 점에 대해 질 높은 질문을 할 수 있습니다.기본적으로 오토로더를 잘못 사용하면 자동 로더가 잘못 작성됩니다 (발견되지 않으면 죽지 않아야하며 다른 오토로더도 정상적으로 작동 할 수 있습니다). – yivi