PHP 中的单双引号
php 果然很有趣
<?php $a1 = null; $a2 = 'null'; $a3 = "null"; $a4 = 0; $a5 = '0'; $a6 = "0"; $a7 = array(); $a8 = array(array()); echo empty($a1) ? 'true' : 'false'; echo empty($a2) ? 'true' : 'false'; echo empty($a3) ? 'true' : 'false'; echo empty($a4) ? 'true' : 'false'; echo empty($a5) ? 'true' : 'false'; echo empty($a6) ? 'true' : 'false'; echo empty($a7) ? 'true' : 'false'; echo empty($a8) ? 'true' : 'false'; ?>
得到以下奇怪的结果
文件 是以
php -f test.php
执行
cli 是以php -r '$a=null;echo empty($a) ? 'true' : 'false';'
执行
参数 | 文件执行 | cli执行
null | true | 1 |
'null' | false | 1 |
"null" | false | null(这里只是占位,php什么都没有输出) |
0 | true | 1 |
'0' | true | 1 |
"0" | true | 1 |
array() | true | 1 |
array(array()) | false | null(这里只是占位,php什么都没有输出) |
看起来是cli 将 ‘null’ ‘true’ ‘false’ 都当作了参数,没有按照字符串来处理。但是文件模式中却按照字符串处理