当输出内容是布尔类型(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;