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 的执行结果:

0818b9ca8b590ca3270a3433284dd417.png

var_dump 的执行结果:

0818b9ca8b590ca3270a3433284dd417.png

print_r 输出的格式很整齐,跟 var_dump 的区别是没有数据类型,并且布尔值的 false 和值 NULL 输出为空。

var_export 的执行结果:

0818b9ca8b590ca3270a3433284dd417.png

var_export 输出的所有数据是可以作为组织好的变量输出的,可以直接赋值使用,但是对于资源型的变量会输出 NULL,这一点需要注意一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值