2014-08-31 111 views
1

我最近审查了大量的PHP代码,我不断跨越未来的情况是这样的:为什么要有一个空的PHP变量?

function() { 

    $var = ''; 

    if (...) { 
     $var = '1'; 
    } 

    echo $var; 

} 

空变量声明,然后在后面定义。

背后有一个原因吗?

我能想到的唯一原因就是为了确保$var在先前定义的情况下为空。

+3

这是在这种情况下的预设,因为第二项任务是有条件的。 '$ var'会解析为NULL;与通知(这种方法通常用于避免)。 – mario 2014-08-31 02:24:16

+0

尝试将“@”放在回波变量之前。 'echo @ $ var;'这会通过E_NOTICE – sugunan 2014-09-06 15:45:25

回答

5

如果您没有定义$var并且if条件失败,则会收到undefined variable $var, assumed constant var通知。 (E_NOTICE

+3

不完全是一个错误,只是一个'通知'。仍应该避免。此外,试图获得一个未定义的变量的值会让你'空',而不是一个空字符串。这可能是相关的,取决于你在做什么。 – Havenard 2014-08-31 02:25:44

+0

我认为这还是和错误,E_NOTICE级别。 – Sebas 2014-08-31 02:26:51

2

如果if (...) {评估为false $var将永远不会被定义。因此当echo $var执行时,NOTICE将显示$var未定义。通过定义默认值,可以防止发生这种情况。

0

如果您没有$ var ='';那么你就需要

if (isset($var)) { 
    echo $var; 
} else { 
    echo ''; 
} 

当你返回像一个AJAX调用这确实有帮助。您可以将所有内容初始化为“'或”错误“。这样,javascript不会出错,因为它所期望的东西总是存在,即使它是FALSE或空白。

相关问题