PHP:做所有这些检查是浪费吗?

时间:2014-09-12 17:24:20

标签: php

我打算像这样写一个IF条件:

if (isset($_GET['code']) && !empty($_GET['code']) && ctype_digit($_GET['code'])){
   //other code here
}

我的意思是,当然如果我只检查:

if(ctype_digit($_GET['code'])){ }

当然$ _GET ['code']存在并且它不是空的,是不是浪费了第一种方式写这个条件?

4 个答案:

答案 0 :(得分:3)

在调用函数之前,有必要检查是否设置了$_GET['code']ctype_digit() 如果未设置$_GET['code'],您将收到与此类似的消息:

  

注意:未定义的索引:第2行的C:\ xampp \ htdocs \ index.php中的代码

答案 1 :(得分:0)

我认为验证您的输入并不浪费,但如果您再写一次,那就更好了。我将创建一个名为isDigit()和required()的方法或函数,并使用它们来检查您的输入。作为代码审查说明,如果您知道需要什么,那么您应该已经在代码的最开始验证了$ _GET中的必填字段。 (实际上我甚至不会直接调用$ _GET,我会在一个对象中处理它来验证和清理来自外部的数据。)

答案 2 :(得分:-1)

这取决于您的错误处理。如果您省略第一次检查,$_GET数组中将不存在包含键“代码”的元素,则会引发E_NOTICE。并且,例如,如果您的服务器在这种情况下响应500错误,用户将看到令人讨厌的500页。 如果您为E_NOTICE禁用了错误报告,则可以省略第一次和第二次检查。

答案 3 :(得分:-2)

使用isset()ctype_digit()应该没问题。