若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
<?php
$var = '';
// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {
print "This var is set set so I will print.";
}
在smarty中解析从数据库中读取的NULL字节的字段时就需要注意这个问题了
错误:
{if isset($msg.name)}
{$msg.name}
{else}
游客
{/if}
正确:
{if $msg.name==''}
游客
{else}
{$msg.name}
{/if}