PHP __Autoload Konflikt

PHP __Autoload Konflikt


PHP gir fatale feil når brukere forsøker å bruke en udefinert klasse, og det er ikke et riktig navn __autoload funksjon å fylle den. PHP automatisk lasting konflikter oppstår når mer enn en autoload funksjon er definert utenfor en PHP bibliotek, kan ikke finne refererte klasser eller SOAP-protokoller brukes.

PHP Classes

PHP programmerere kan plassere klassene brukes av programmet i en egen katalog fil. Dette lar programmerere å legge til nye klasser under kjøring. Egne klasser finnes for ulike typer data som ansatte, kunder kontonumre og deler av utstyret spores i en database. Hver klasse filen slutter med .class.php. En utstyr katalogen kan bli navngitt equipment.class.php. Den require_once () uttalelse gjør klassen filen som skal brukes av skript. I stedet for å kreve programmerere å skrive inn flere uttalelser ved starten av et skript for hver type klasse, gjør at PHP klasse autoloading.

autoloading feil

Når PHP ikke gjenkjenner en klasse, søker det for __autoload funksjon. Ifølge "Kjerne Php programmering," hvis den finnes PHP kaller det med en enkelt parameter, som er navnet på klassen fordi PHP forutsetter at klassen definisjonen er lagret i en fil som starter med navnet på klassen. Når en student klassen brukes, foruts PHP at filen class_student.php inneholder studenten klassedefinisjonen. Hvis filen heter class_fifthgrade.php i stedet, for eksempel PHP script vil ikke finne det og mislykkes.

Klasse Navn feil

Autoload funksjonen virker bare riktig hvis klassen er definert senere i manuset. Hvis klassen ikke er definert senere i programmet, vil den automatisk laste funksjonen genererer feil. Hvis det mangler klassen fil, vil den automatisk laste funksjonen mislykkes. Bruk strenger å referere til klasser dynamisk i stedet for å redigere eller erstatte klassefilen mens prosessen går. Legge include () -funksjonen lar PHP til å lage en ny klasse og forebygge konflikter.

PHP autoloading Konflikter

Den __autoload funksjonen kan bare defineres i en PHP prosess. PHP autoloading konflikter oppstår når funksjonen er definert mer enn en gang eller endret i løpet av prosessen. "Php objekter, Patterns and Practice" antyder bruker spl_auotload_register funksjon for å endre autoload funksjon dynamisk. A Standard PHP biblioteket eller SPL tillater brukere å definere og registrere flere autoloading funksjoner uten å krenke enkeltautoload definisjonen per prosess regelen. Hver autoload funksjon som brukes i prosessen må deklareres og registrert i SPL før require_once setningen brukes.

SOAP Skjøte Konflikter

SOAP-protokoller definere konstruksjon som brukes for meldingsutveksling. PHP versjon 5 har en innfødt SOAP forlengelse. NuSOAP er en objektorientert fremgangsmåte for å generere meldinger. De PHP versjon 5 SOAP forlengelse konflikter med NuSOAP klassen. Konflikten blir løst ved å deaktivere PHP versjon 5 innfødt SOAP forlengelse.