【PHP】exit、die、echo输出的一个坑,浏览器里没有任何输出

当输出内容是布尔类型(false没有,true是可以的)、整型时,浏览器里是没有任何输出的!!

可使用以下代码测试

- 布尔型的测试
  - false
echo false;// 浏览器中没有任何输出
exit(false);// 浏览器中没有任何输出
die(false);// 浏览器中没有任何输出

思考:那么,如果不直接输出false,加上一些字符串一起输出会成功吗?
echo 'test'.false;// 输出test
exit ('test'.false);// 输出test
die ('test'.false);// 输出test
实验可知,即使和其他字符串一起输出,false的值本身还是不会被输出的,那么这里就会有个坑了,在日常测试调试的时候,如果输出的值刚好就是false,那么就不会有任何输出!当然,这个也是有办法解决的。
可以使用:
exit (var_dump(false));// 输出bool(false)

  - true
echo true;// 输出1
exit(true);// 输出1
die(true);// 输出1

echo 'test'.true;// 输出test1
exit ('test'.true);// 输出test1
die ('test'.true);// 输出test1
可以看出,输出中包含布尔型true是没有问题的

- 整形的测试
echo 1;// 输出1
exit(1);// 浏览器中没有任何输出
die(1);// 浏览器中没有任何输出

exit和die怎么会没有输出呢?难道1是特殊值吗,在测试其他值试试

echo 666;// 输出666
exit (666);// 浏览器中没有任何输出
die (666);// 浏览器中没有任何输出

难道php的exit和die不能输出整形吗?在前面加上字符串在输出试试。
exit ('test' . 666);// 输出test666
die ('test' . 666);// 输出test666
可以看到,在整型前面加上字符串是可以正常输出的,也就是说exit和die只输出整型的话,浏览器中不会有任何输出。

总结:
1、对于布尔型中的false,当输出结果包含false时,echo exit die都是无法正常直接输出的,但是可以通过var_dump(false)方法输出
2、对于整型,如果输出结果中只有整形时,exit die无法正常输出,浏览器没有任何显示。但是echo是可以的
3、如果输出结果不仅有整型的数,还有其他字符串等,exit和die是可以正常输出的(先输出整型再输出字符串也是能正常输出的)。

顺便说下,die和exit都是一样的,指的是同一个函数,除了名字上的区别,底层代码是没有任何区别的。die()是exit()函数的别名。但是使用会有所选择,我个人而言,日常开发中正常退出输出会使用exit('xxx');如果是异常退出,则会使用die('xxx'),一般和or die('xxx')一起用的比较多。

echo false;// 浏览器中没有任何输出

echo true;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值