php:if($some_var!='')vs.isset/empty

php:if($some_var!='')vs.isset/empty,php,isset,Php,Isset,所以我对php还比较陌生,但在我真正了解php之前,我就养成了这个习惯。检查是否设置了$\u SESSION/$\u POST/$\u GET变量时,我使用以下方法: if($_SESSION['username'] != '' { //allow access header('Location: welcomefriend.php') } else { //get out header('Location: getoutofhereyournotwelcome.php') } 我在登

所以我对php还比较陌生,但在我真正了解php之前,我就养成了这个习惯。检查是否设置了$\u SESSION/$\u POST/$\u GET变量时,我使用以下方法:

if($_SESSION['username'] != '' {
 //allow access
 header('Location: welcomefriend.php')
}
else {
 //get out
 header('Location: getoutofhereyournotwelcome.php')
}
我在登录脚本中使用了它来检查会话是否设置为允许访问,等等。所以现在我知道了isset/empty,但我似乎总是遇到这些问题


所以我的问题是,如果使用if$some_far!=要检查是否设置了变量?

是,如果表单已提交但未填写,$\u POST[value]==将给出与isset$\u POST[value]不同的结果。另外,$\u POST[value]==在某些服务器上未设置时会给您一个错误。

是的,如果表单已提交但未填写,$\u POST[value]==将给您一个与isset$\u POST[value]不同的结果。另外,$\u POST[value]==在某些服务器上未设置时会给您一个错误。

是-如果数组中不存在索引,它会抛出一个通知

是-如果数组中不存在索引,它将抛出通知

如果该变量不存在,则会显示通知,请执行以下操作:

if( !empty($_SESSION["username"]) ) {
...

如果变量不存在,则会显示注意,请执行以下操作:

if( !empty($_SESSION["username"]) ) {
...
如果检查$\u会话['username']是否为空,而不检查$\u会话数组中是否确实存在用户名项,则会引发通知。围绕它们编写代码是一种很好的做法。实现这一点的一种方法是,如果设置$\u会话['username']&&&$\u会话['username']!=

至于空vs!=,这是个人喜好。您可能遇到的一个问题是empty不接受值,只接受引用,因此您无法执行emptysomefunction$\u SESSION['username']。

检查$\u SESSION['username']是否为空,而不检查$\u SESSION数组中是否确实存在用户名条目,将抛出通知。围绕它们编写代码是一种很好的做法。实现这一点的一种方法是,如果设置$\u会话['username']&&&$\u会话['username']!=

至于空vs!=,这是个人喜好。您可能遇到的一个问题是,empty不接受值,只接受引用,因此您无法执行emptysomefunction$\u会话['username']。

使用if!清空$some_far{以检查$u POST变量是否已设置且不为空

如果变量也可以为空,但必须设置为,则在设置$some\u far时使用{ 同时,变量也必须不为NULL才能返回true

如果变量没有像Martin在文章中提到的那样设置,您也不会得到通知。

使用if!empty$some\u far{检查$u post变量是否设置为空

如果变量也可以为空,但必须设置为,则在设置$some\u far时使用{ 同时,变量也必须不为NULL才能返回true


如果变量未设置为Martin在其帖子中已经提到的值,您也不会收到通知。

我通常会执行以下操作:

if (isset($_SESSION['username']) && $_SESSION['username'] != '') {
  //allow access
  header('Location: welcomefriend.php')
}
else {
  //get out
  header('Location: getoutofhereyournotwelcome.php')
}

首先在if语句中测试$\u会话变量中是否存在索引“username”,这意味着如果该索引不存在,我们将不会继续使用$\u会话[“username”!=因此不会导致错误。

我始终执行以下操作:

if (isset($_SESSION['username']) && $_SESSION['username'] != '') {
  //allow access
  header('Location: welcomefriend.php')
}
else {
  //get out
  header('Location: getoutofhereyournotwelcome.php')
}
首先在if语句中测试$\u会话变量中是否存在索引“username”,这意味着如果该索引不存在,我们将不会继续使用$\u会话[“username”!=因此不会导致错误。

包含可用于当前脚本的会话变量的关联数组

为什么不使用可用的预定义函数?数组\u键\u存在

考虑到

包含可用于当前脚本的会话变量的关联数组

为什么不使用可用的预定义函数?数组\u键\u存在


使用该选项不是检查变量是否已设置的好方法。==和!=在值方面通常是有问题的;但是,如果未设置变量或数组索引,则没有值可以开始,这使得它更不合适。如果$some_far足以检查设置,则使用该选项检查变量是否已设置。==和=当涉及到值时,通常是有问题的;但是,如果没有设置变量或数组索引,那么就没有值可以开始,这使得它更不合适。如果$some\u far可能足以检查setif!empty$\u SESSION['username']{也可以做这项工作:if!empty$\u SESSION['username']{也可以这样做:我只在我的服务器上开发了通知,所以我猜通知被禁用了,所以它还没有引起问题。将来我将使用empty,因为它似乎检查相同的东西。我只在我的服务器上开发了通知,所以我猜通知被禁用了,所以它还没有引起问题。将来我将使用empty,因为它似乎检查了同样的事情。