When debugging in PHP there are a few techniques you can use, you could use something likeXdebug which will allow you to step through your code at run time and you can see exactly what the code is doing. Xdebug will allow you to step into function and make sure the variables are being set as the should be.
Your other option is to output the code in the browser and exit the script so it just displays what you want to debug and nothing else, something similar to this.
<?php
echo '<pre>';
print_r($debug_array);
echo '</pre>';
exit;
?>
This will allow you to see exactly what is in this variable at a certain time of running your code.
But what if you want to view the rest of the page and debug at the sametime, you can simply print the variable without the exit in your code. But then you get the problem of the print being on the page which could either break your design or the debug will be displayed in the design.
Your other option is to write debug into a log file, this can be done with a debug class which writes to a debug log file, allowing you to view all your variables and not breaking your design.
If you don't want to send your data to a log file you can also try this neat little trick and output debug data into the browser debug console.
Here is a snippet of a function you can use to output PHP data to the browser console.
<?php
/**
* Send debug code to the Javascript console
*/
function debug_to_console($data) {
if(is_array($data) || is_object($data))
{
echo("<script>console.log('PHP: ".json_encode($data)."');</script>");
} else {
echo("<script>console.log('PHP: ".$data."');</script>");
}
}
?>