Ich schrieb eine Autoloader-Klasse.Variable außerhalb des Geltungsbereichs bei Verwendung von include_once
Aber die include_once
Funktion enthält nicht die Datei, die ich brauche.
Cls.php (Pfad: 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 Theme Klasse (Pfad: cls /)
<?php
include_once("cls.php");
$dup->dup("conf");
?>
Conf.cls.php Site Config-Klasse (Pfad : cls/
)<?php include_once("cls.php"); $dup->dup("db"); ?>
index.php (Pfad: /)
<?php
include_once("theme.cls.php");
?>
Fehlerdetails:
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
Sie verwenden nicht Autoloading, wie es sollte verwendet werden. Es macht keinen Sinn, die Autoloader-Funktion direkt aufzurufen. Es gibt mehr Probleme mit Ihrem Code, aber Sie sollten etwas mehr Zeit damit verbringen, die Grundlagen zu studieren, bevor Sie sich damit beschäftigen. – yivi
Ich verstehe, aber ich lerne PHP oop ich verstehe Fehler nicht, wie kann ich es lösen. wo Sie den falschen Code –
Rundherum sehen. Wird Ihren Code nicht für Sie neu schreiben. Sie vermissen ein grundlegendes Verständnis der Thematik, um eine Qualitätsfrage dazu stellen zu können.Grundsätzlich ist die Verwendung von Autoloadern falsch und Ihr Autoloader ist schlecht geschrieben (er sollte nicht "sterben", wenn er nicht gefunden wurde, kehren Sie einfach zurück, damit andere Autoloader auch funktionieren). – yivi