När ett PHP-program kraschar , stannar det utförande i mitten av behandlingen på grund av ett oväntat fel . PHP kraschar kan vara allvarliga , eftersom de kan lämna uppgifter delvis bearbetade eller uppdateras och plötsligt stänga öppna filer när kraschen inträffar . Orsaken till ett PHP- krasch kan vara ett fel i PHP-skript eller kan bero på dåliga data, snarare än ett programmeringsfel . Det finns flera saker du kan göra när PHP kraschar för att identifiera orsaken till kraschen . Sedan kan du antingen fixa felaktig PHP-skript eller inkludera extra skript som föregriper och fällor fel som orsakas av dåliga data. Instruktioner
1
recension webbserverns loggfil . Leta reda på filen , vilket enligt Apache är typiskt belägen vid /var/log/apache2/error.log . Visa den senaste delen av felloggen till skärmen genom att skriva:
svans /var/log/apache2/error.log
2
recension felmeddelanden i loggfilen . Öppna PHP-skript i en editor och granska den kod som motsvarar radnumret som anges i felmeddelandet . Leta efter fel i logik som kan ha orsakat kraschen att inträffa . Undersök minst 10 linjer över och under linjen numret citeras i felet , eftersom tolken kan rapportera ett fel på en annan linje från den linje där den faktiskt innehöll .
3
Turn felrapportering tillbaka på så att du kan interaktivt felsöka skriptet utan att granska loggfilen efter varje steg . Använd en editor för att modifiera PHP-skript . Kommentera bort en rad som har " error_reporting " uttalande och lägger till en ny rad nedanför den med följande uttalande :
error_reporting ( E_ALL ) ,
4
Infoga felsökning kod i PHP-skript så att du lättare kan spåra fel som orsakas av dåliga eller oväntade uppgifter . Skapa en funktion för att skriva felsökningsmeddelanden till skärmen och skapa en boolesk variabel som tillåter dig att globalt aktivera felrapportering på och av . Sätt felsökning uttalanden i PHP-koden . Till exempel lägga till följande kod till PHP-skript :
$ debug = true; funktion debug ( $ msg ) { global $ debug , om återvändande , echo "
* ( $ debug ! ) ** $ msg *** < /p > " ;}
in debug -funktionen runt där felet uppstod . Till exempel , typ :
debug ( " x = $ x och y = $ y efter bearbetning den första datapost " ) ;
Ändra $ debug variabeln till false när du inte längre vill skriva avlusningsmeddelanden till skärmen .
5
Använd " prova /catch " uttalanden eller " if-else " logik att fånga fel som kan orsakas av oväntade förhållanden såsom dåliga data. Trap fel som kan orsaka en krasch även när uppgifterna inte bör innehålla de värden som skulle orsaka kraschen att inträffa . Till exempel , skriver du följande för att undvika en " division med noll " fel även om en nolla är inte ett giltigt värde för variabeln :
$ genomsnitt = 0 ; if ( $ count = 0 ) { $ genomsnitt = $ totala /$ count; }
6
Ta hjälp av andra utvecklare som kanske inte är så bekant med koden . Ibland orsaken till ett fel kan vara ett antagande du gör beror på din förtrogenhet med hur programmet fungerar . När du har hittat orsaken till kraschen , brainstorma med andra utvecklare om andra krascher som kan orsakas av liknande logiska fel eller sekretesspolicyn . Granska hela PHP-skript och fixa andra delar av programmet som kan vara utsatta för liknande krascher . Addera