isset中的意外PHP行为和空

Mos*_*ady 1 php

array(4) { ["id"]=>  int(0) ["pass"]=>  string(0) "" ["log_in"]=>  string(3) "no"  } 
Run Code Online (Sandbox Code Playgroud)

id使用isset它时的问题是true因为它返回0.当使用空时我认为它也是这样做的.知道它是否已设定的最佳功能是什么?

Sar*_*raz 5

empty 为这些返回false:

  • "" (一个空字符串)
  • 0 (0作为整数)
  • "0" (0作为字符串)
  • NULL
  • FALSE
  • array() (一个空数组)
  • var $var (声明的变量,但在类中没有值)

您需要使用isset它来检查它是否存在.

有关详细信息,请参阅有关empty vs isset的这篇文章.