当我希望它始终被设置时,我应该检查 isset($_GET[...]) 吗?

Should I check isset($_GET[...]) when I expect it to always be set?

最近和一些PHP安排了一个项目,对PHP了解不多。在站点中有几个实例,在单击按钮后,用户将被重定向到另一个带有一些 URL 参数的页面。下一页然后使用 $_GET 获取这些参数并继续。

代码中的另一个问题导致页面在没有参数的情况下重新加载第二页,因此使用 $_GET 会 return 错误,但是在解决了另一个问题后,我想不出参数不存在的原因。

在调试时,我遇到了总是使用 isset() 检查 $_GET 的建议,但理论上,当这些参数不存在时,永远不应该有一个实例(否则其他东西确实有问题服务器或代码)。

是否仍然值得进行检查并制定备份解决方案,即使不需要它?我想确保我没有忽略一些我可能不知道的其他潜在问题。

在应用任何逻辑之前检查变量始终是一个好习惯+建议。

建议使用

!empty() 而不是 isset() 因为它会检查该变量是否已初始化并且也有一些值。

在数组的情况下count($array)>0可以用作检查。

为什么要使用!empty() 看这里:- !empty() Vs isset()

如果您期望或要求通过 $_GET 发送数据,您应该检查它是否已设置。特别是因为这些数据可以很容易地被操纵。也像@Alive to Die 说 !empty() 更好。

isset() checks if a variable has a value including ( False , 0 , or empty string) , but not NULL. Returns TRUE if var exists; FALSE otherwise. On the other hand the empty() function checks if the variable has an empty value empty string , 0, NULL ,or False.