Ett litet tips hur du gör enkel felsökning i PHP med print_r(). Det är troligen en av de vanligaste felsökningsmetoder jag använder i PHP, för att till exempel se om en array skickas rätt. print_r() skriver ut innehållet i en array, så här beskrivs funktionen i online-manualen:
Prints human-readable information about a variable
Men inte nog med det, print_r kan returnera värdet till en variabel istället, och den kan dessutom skriva ut din array välformaterat. Genom att sätta <pre> framför och </pre> blir det lite lättare att läsa!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // En array skapas på något sätt // här gör jag det manuellt för att testa $minarray = array( 'banan' => 'gul', 'blåbär' => 'blå', 'äpple' => 'rött' ); // Någonstans i ditt skript, där du behöver se att // variabeln innhåller rätt information $check = '<pre>' . print_r($minarray, true) . '</pre>'; // Senare... echo $check; ?> |
Resultatet, snyggt (nåja) och läsbart :)
Genom att lägga informationen i en variabel går den hantera i en miljö där funktion och layout är uppdelad (som t.ex. MVC).
Tips om dina metoder för felsökning i PHP
Om du har metoder att felsöka i PHP, tveka inte att tips PHPkurs.se, skicka ett mail till mattias@kurswebben.se eller skriv en kommentar till det här inlägget! :)
Kan vara bra att fortsätta ditt lilla exempel med att wrappa ” . print_r($minarray, true) . ” i en funktion så den kan återanvändas. :)
Sen när det ändå handlar om felsökning; Ser en liten risk med ditt skript som potentiellt skulle vara svår att felsöka. Om du inkluderar din php-fil i en anna med include eller require och du råkar ha ett white-space efter avslutande ?> i skriptet så blir det fel. Nu använder du väl Sublime som man kan ställa in till att strippa white-spaces, men good practise är ändå att alltid strunta i avslutande ?> i phpskript. Finns enbart vinster med att göra så.
Absolut, men jag brukar göra exempel i kursen fristående om det går :)
Men att återanvända är alltid av godo, vare sig det gäller PHP eller Photoshop, allt man kan spara tid men ändå få snyggt ;)