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执行

nulltrue1
'null'false1
"null"falsenull(这里只是占位,php什么都没有输出)
0true1
'0'true1
"0"true1
array()true1
array(array())falsenull(这里只是占位,php什么都没有输出)

看起来是cli 将 ‘null’ ‘true’ ‘false’ 都当作了参数,没有按照字符串来处理。但是文件模式中却按照字符串处理

标签: none
返回文章列表 文章二维码
本页链接的二维码
打赏二维码