PHP geeft fatale fouten wanneer gebruikers proberen om een ongedefinieerde klasse te gebruiken en er is niet een juiste naam __ autoload functie om het te vullen . PHP automatische toevoer conflicten ontstaan wanneer er meer dan een automatische toevoer functie buiten van een PHP bibliotheek is gedefinieerd , kan niet vinden klassen verwezen of SOAP -protocollen worden gebruikt . PHP Klassen PHP programmeurs kan plaatsen de klassen die worden gebruikt door het programma in een aparte directory bestand . Dit stelt programmeurs in staat om nieuwe klassen in runtime toevoegen. Aparte klassen bestaan voor verschillende soorten data zoals medewerkers , klanten rekeningnummers en onderdelen van de uitrusting bijgehouden in een database. Elke klasse bestand eindigt met . Class.php . Een uitrusting directory kon worden genoemd equipment.class.php . De require_once ( ) verklaring stelt de klasse -bestand te worden gebruikt door scripts . In plaats van dat programmeurs om meerdere verklaringen aan het begin van een script voor elk type van de klasse in te voeren , PHP maakt klasse automatisch laden . Autoloading Fouten Als PHP niet herkent een klasse , zoekt het naar de __ autoload functie . Volgens de " Core PHP Programmering , " als het bestaat PHP noemt het met een enkele parameter , dat is de naam van de klasse , omdat PHP gaat ervan uit dat de klasse definitie wordt opgeslagen in een bestand dat begint met de naam van de klasse . Wanneer een student klasse wordt gebruikt , PHP gaat ervan uit dat het bestand class_student.php bevat de student klasse definitie . Als het bestand is vernoemd class_fifthgrade.php plaats , bijvoorbeeld de PHP-script zult het niet vinden en falen . Class Naam Fouten De automatische toevoer functie werkt alleen goed als de klas later in het script wordt gedefinieerd . Als de klas niet later in het programma is gedefinieerd , zullen de automatische toevoer functie fouten genereren . Als de klas bestand ontbreekt , zal de automatische toevoer functie mislukken . Gebruik touwtjes om te verwijzen naar klassen dynamisch in plaats van het bewerken of het vervangen van de klasse -bestand , terwijl het proces draait . Het toevoegen van de include ( ) functie kan PHP om een nieuwe klasse te maken en conflicten te voorkomen . PHP Autoloading Conflicten De __ autoload functie kan alleen in een PHP- proces worden gedefinieerd . PHP autoloading conflicten optreden wanneer de functie wordt meer dan eens omschreven of veranderd tijdens het proces . " Php Objects , Patterns and Practice " suggereert met de spl_auotload_register functie voor het dynamisch wijzigen van de automatische toevoer functie . Een standaard PHP Library of SPL kunnen gebruikers meerdere autoloading functies definiëren en te registreren zonder het schenden van de interne automatische toevoer definitie per proces regel. Elke automatische toevoer functie gebruikt in het proces moet worden verklaard en geregistreerd bij de SPL voordat de require_once statement wordt gebruikt . SOAP Uitbreiding Conflicten SOAP protocollen definiëren het construct gebruikt voor berichtenuitwisseling . PHP versie 5 heeft een native SOAP extensie . NuSOAP is een object - georiënteerde werkwijze van het genereren van berichten . De PHP-versie 5 SOAP extensie conflicten met de NuSOAP klasse . Het conflict wordt opgelost door het uitschakelen van PHP versie 5 van inheemse SOAP extensie .
|