lau*_*kok 0 php variables isset
PHP中非常基本的问题 - 我已将变量设置为null,为什么我在结果中得到错误?
$a = null;
var_dump(isset($a)); // false
Run Code Online (Sandbox Code Playgroud)
如果不是我所追求的变量,我如何检查是否设置了变量isset?
我不能用empty,例如,
var_dump(empty($b)); // false
Run Code Online (Sandbox Code Playgroud)
但$b根本没有设定.
我可以在javascript中做到这一点,这更有意义,
if (typeof variable !== 'undefined') ...
Run Code Online (Sandbox Code Playgroud)
isset检查变量是否被设定,而不是null.所以是的,false如果您正在检查的变量保持该值,它将返回null.事实上,不可能将不存在的变量与变量保持区分开来null.人们会建议各种各样的hackarounds,但它们都没有100%的时间工作.在PHP中你无法区分这两种情况,期间.
请注意,您可以使用更专业的方法来确定数组键或对象属性的差异,这没有问题.但是普通变量难以区分.
话虽如此,你真的不应该进入你需要这种区别的情况.如果正确初始化变量,则无需检查它们是否已设置.您可以完全控制程序中的所有变量,您可以绝对确保它们应该存在,因此您无需检查.如果PHP然后抱怨不存在的变量,你知道你有一个可以修复的错误.您无法控制的所有输入应以"从外部"的数组或对象的形式出现,您可以详细检查并与null不存在的键区分.
请参阅PHP的权威指南isset并为空.