php debug code example
Example 1: how to debug in php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Example 2: php best debugging functions
I find it very useful to print out to the browsers console instead of just var_dumping:
function console_log( $data ){
echo '<script>';
echo 'console.log('. json_encode( $data ) .')';
echo '</script>';
}
Usage:
$myvar = array(1,2,3);
console_log( $myvar ); // [1,2,3]
Example 3: php best debugging functions
A good example of data output to the console via <script> tags, I myself used this first, but he broke the captcha job, because <script> tags were inserted into the base64 code of the captcha picture. Then I began to display logs in the headers with such a function (it may help someone else, in a similar situation):
<?php
function header_log($data){
$bt = debug_backtrace();
$caller = array_shift($bt);
$line = $caller['line'];
$file = array_pop(explode('/', $caller['file']));
header('log_'.$file.'_'.$caller['line'].': '.json_encode($data));
}
?>
Usage:
$myvar = array(1,2,3);
header_log( $myvar ); // in headers we see: log_filename_rownumber: [1,2,3]
Example 4: debug php
// ------ string -------
// use echo, exit for output
$a = 123
echo ($a);
exit;
// ------ array -------
$array = array(
1 => 'apple',
2 => 'banana',
)
// Method 1
echo "<pre>";
print_r($array);
echo "</pre>";
// Method 2
echo "<pre>";
var_dump($array);
echo "</pre>";
// Method 3 (no need exit) beacause of dd is already exit
dd($array)
// Method 4 (cakephp)
pr ($array);
// ------ json -------
$json = {"a":"123"}
pr (json_encode($json));
exit;
print_r (json_encode($json));
exit;