什么更好,不管是不是?

Jam*_*mes 6 php isset

两者之间有什么速度差异吗?

if (isset($_POST['var']))
Run Code Online (Sandbox Code Playgroud)

要么

if ($_POST['var'])
Run Code Online (Sandbox Code Playgroud)

哪个更好还是相同?

Aym*_*ieh 17

使用它是一个很好的做法,isset原因如下:

  • 如果$_POST['var']是一个空字符串或者"0",isset仍然会检测到该变量存在.
  • 不使用isset会生成通知.


cle*_*tus 13

他们不一样.考虑一个名义数组:

$arr = array(
  'a' => false,
  'b' => 0,
  'c' => '',
  'd' => array(),
  'e' => null,
  'f' => 0.0,
);
Run Code Online (Sandbox Code Playgroud)

假设$x是其中一个键('a'到'f')和键'g'不在那里它的工作原理如下:

  • $arr[$x]适用false于所有键a到g;
  • isset($arr[$x])true为一个键,B,C,d和f但false对于E和G; 和
  • array_key_exists($x, $arr)true为至f的所有密钥的,false为克.

我建议你看看PHP的类型杂耍,特别是转换为布尔值.

最后,您正在做的是微优化.永远不要选择哪一个被认为更快.无论是快是差,可忽略不计,它应该永远是,即使你可以可靠地确定这是更快(这我不知道,你能满足任何统计学显著水平)的一个因素.