PHP中的Echo null值

时间:2016-07-10 16:56:38

标签: php

如果我们不定义变量,我们会注意到,例如

<?php 
echo $a;

但是如果设置为null,我们会得到空字符串? http://sandbox.onlinephpfunctions.com/code/602702f85a54ec4b42bfff22ca25127c4a4c9ace

<?php
$a = null;
echo $a;


$str = DB::find()->select('name')->where(['id' => 1])->one(); //returns null or string name

echo $str;

通常的做法是使用这种方法从DB或某些函数返回值,还是这是未记录的功能?

或者更好地处理像这样的变种?

<?php
echo $a ?: '';

由于

1 个答案:

答案 0 :(得分:0)

PHP有一个称为&#34; type juggling&#34;的功能,当某个函数在某些不受支持的数据上调用时,PHP会尝试将数据转换为可用的格式。例如,echo 1234;将输出1234,而不是抛出错误(因为1234不是字符串)。

现在,null被类型变为空字符串,因为它可能是最合乎逻辑的转换为(null表示什么都没有的概念)。在转换为字符串部分下,此行为已定义为here