我知道 empty 比 isset 快一点,但是 filter_has_var 比 isset 快一点(在 php.net 中写的)那么 empty 和 filter_has_var 哪个更快?
最佳答案
filter_has_var()
如果由于某种原因清除了超全局变量,可能会有用,因为它检查原始输入数据,而不是 $_GET、$_POST、$_ETC。
例如:
$_GET["injected"] = 123;
var_dump( filter_has_var(INPUT_GET, "injected") ); // false
// or the other way round
虽然您可以覆盖变量,但 filter
扩展会访问一个单独的副本。并且 INPUT_GET
不会别名到 $_GET
超全局。
除此之外,另一个原因是将其用于统一。如果您广泛使用 filter_var,那么规则集会更喜欢使用 filter_has_var() 而不是 isset()。
但不要因为任何愚蠢的性能原因而使用其中之一。
关于PHP filter_has_var 与空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843113/