gpt4 book ai didi

PHP @ 而不是 isset 来测试 $_GET 值

转载 作者:可可西里 更新时间:2023-10-31 22:45:02 24 4
gpt4 key购买 nike

给我一​​个这样做的好理由

if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...

而不是这个

if( @$_GET['key'] === '123' )
{...

我要求的是这个非常具体的代码案例,而不是笼统的!

以下原因不受欢迎:

  • 使用 @ 会使应用程序减慢几纳秒,因为无论如何都会产生错误(即使它被抑制了)。“好吧,我更喜欢慢一点代码,但更具可读性。
  • 使用 @ 是个坏习惯。”一般情况下可能是这样,但我不相信这种情况(而且坏习惯可能取决于上下文,在像 fopen 这样的函数中的 PHP 手册中,他们建议在某些情况下使用 @,请参阅错误/异常在 http://www.php.net/manual/en/function.fopen.php )

最佳答案

性能影响实际上并不是反对此示例的最佳论据,您必须测量您自己的应用程序中的性能才能确定这是否是一个问题。如果未设置大量正在检查的项目,或者如果您将此类检查放在循环中,则更有可能导致速度变慢。

与使用 @ 运算符相关的主要问题是它很可能成为您代码中的约定,因此虽然您的示例看起来无害,但您稍后可能会发现自己或您的团队使用:

if( @IsAvailable() ) {

并且错误抑制开始隐藏您未预料到的真实错误以及您预料到的错误 - 并且您根本不知道发生了什么,因为您根本没有获得任何异常信息。

关于PHP @ 而不是 isset 来测试 $_GET 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com