两者之间有什么速度差异吗?
if (isset($_POST['var']))
Run Code Online (Sandbox Code Playgroud)
要么
if ($_POST['var'])
Run Code Online (Sandbox Code Playgroud)
哪个更好还是相同?
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的类型杂耍,特别是转换为布尔值.
最后,您正在做的是微优化.永远不要选择哪一个被认为更快.无论是快是差,可忽略不计,它应该永远是,即使你可以可靠地确定这是更快(这我不知道,你能满足任何统计学显著水平)的一个因素.