在 PHP 中取消设置之前检查 var 是否存在?

php
2022-08-30 07:42:58

在 PHP 中取消设置变量时,如果发生错误报告,甚至为了最佳实践,您是否应该检查它是否首先存在(在这种情况下,它并不总是存在)和取消设置它,或者只是取消设置它?

<?PHP
if (isset($_SESSION['signup_errors'])){
    unset($_SESSION['signup_errors']);
}

// OR

unset($_SESSION['signup_errors']);
?>

答案 1

只是取消设置它,如果它不存在,什么也做不了。


答案 2

来自 PHP 手册

关于这些注释中前面的一些混淆,即在取消设置不存在的变量时,导致unset()触发通知的原因。

取消设置不存在的变量,如

<?php
unset($undefinedVariable);
?>

不会触发“未定义的变量”通知。但

<?php
unset($undefinedArray[$undefinedKey]);
?>

触发两个通知,因为此代码用于取消设置数组的元素;无论是$undefinedArray还是$undefinedKey本身都没有被设置,它们只是被用来定位应该未设置的东西。毕竟,如果它们确实存在,你仍然希望它们之后都存在。你不会希望你的整个数组消失只是因为你取消了()它的一个元素!


推荐