php程序怎么调试,你是怎么调试PHP代码的
1.echo
這是最簡單的輸出數據調試方法,一般用來輸出變量值,或者你不確定程序執行到了哪個分支的情況下使用。
$var = 7;
if (0 > $var) {
// do something
echo '1';
}elseif (0 < $var && 5 > $var) {
// do something
echo '2';
}elseif (5 < $var && 10 > $var) {
// do something
echo '3';
}
執行結果:
3
由此我們清楚的看到代碼分支執行到了第三個判斷分支。
補充:echo 不是一個函數(它是一個語言結構), 因此你不一定要使用小括號來指明參數,單引號、雙引號都可以。 echo (不像其他語言構造)不表現得像一個函數, 所以不能總是使用一個函數的上下文。 另外,如果你想給 echo 傳遞多個參數, 那么就不能使用小括號。
2.print
用法同echo,它實際上也不是一個函數(是一個語言結構),因此你可以不必使用圓括號來括起它的參數列表。只是echo沒有返回值,而print總是返回1。
$var = 4;
if (0 > $var) {
// do something
print '1';
}elseif (0 < $var && 5 > $var) {
// do something
print '2';
}elseif (5 < $var && 10 > $var) {
// do something
print '3';
}
執行結果:
2
3.printf
printf函數常用來調試輸出一些其他輸出不能正確輸出的變量,比如在PHP中,浮點數和整數之間經常會造成迷惑。PHP手冊功能解釋為:輸出格式化字符串。
$float = round(1111.11, 2) * 100;
$int = intval($float);
var_dump($float);
var_dump($int);
執行結果:
float(111111)
int(111110)
這種情況下,要弄清為什么會有這種差異,就要用到 printf了。
$float = round(1111.11, 2) * 100;
$int = intval($float);
printf("%.20f", $float);
echo "\n";
printf("%.20f", $int);
執行結果:
111110.99999999998544808477
111110.00000000000000000000
4.print_r、var_dump、var_export
先看看PHP手冊的解釋:
print_r——打印關于變量的易于理解的信息
var_dump——打印變量的相關信息
var_export——輸出或返回一個變量的字符串表示
這三個函數主要是用來輸出變量的數據值,特別是數組和對象數據,一般我們在查看接口返回值,或者某些不太確定變量的時候,都可以使用這三個函數。
代碼示例:
$arr = array(
'string' => 'dingdingwork APP',
'bool' => true,
'bool2' => false,
'array' => array('appname'=>'盯盯工作', 'website'=>'http://www.dingdingwork.com', 2015),
'int' => 100,
'float' => 0.01,
'null' => null,
'object' => new stdClass(),
);
print_r($arr);
var_dump($arr);
var_export($arr);
print_r 的執行結果:
var_dump?的執行結果:
print_r 輸出的格式很整齊,跟 var_dump 的區別是沒有數據類型,并且布爾值的 false 和值 NULL 輸出為空。
var_export 的執行結果:
var_export?輸出的所有數據是可以作為組織好的變量輸出的,可以直接賦值使用,但是對于資源型的變量會輸出 NULL,這一點需要注意一下。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php程序怎么调试,你是怎么调试PHP代码的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运用java 多线程模拟火车售票。。。。
- 下一篇: php curl和file get,PH