使用isset是一个额外的函数调用,但仍然是推荐的做法。 在下面的特定示例中,什么会更快?
我觉得第一个会更快。否则,有人可以解释为什么第二个会更快 - 如果是这样的话?
if (@$_REQUEST['x']=='1'):
define ('X','1');
else:
define ('X','0');
endif;
//or
if (isset($_REQUEST['x'])):
if ($_REQUEST['x']=='1'):
define ('X','1');
else:
define ('X','0');
endif;
else:
define ('X','0');
endif;
答案 0 :(得分:1)
最佳实践要求避免使用抑制运算符,因此请使用isset()。如果你对微优化有足够的考虑来考虑差异,你应该知道PHP仍然处理被抑制的错误,即使它们没有被显示。理论上由@获得的任何优化都可能因错误处理而丢失。
最佳实践还规定了从外部来源获取输入的特殊性。我还建议选择$ _POST或$ _GET作为替代品。