题
我试图理解在表单处理期间是否需要isset时,如果没有传递任何值,则检查$ _REQUEST [" input_name"]并且它不会为此哭泣而且如果你是php则不会抛出错误试图访问不存在的数组项....我可以使用if($ _ REQUEST [" input_name"]).. 那么“空”怎么样?即使在那些情况下我也可以使用if()
THnks
解决方案
if(<*>
如果“input_name”,将抛出通知(错误)不存在,所以建议使用isset()。
REQUEST["input_name"])
如果“input_name”,将抛出通知(错误)不存在,所以建议使用isset()。
其他提示
除非您正在测试表单,否则我不建议使用 $ _ REQUEST
超全局来捕获表单输入。除非你有充分的理由,否则请使用 $ _ GET
或 $ _ POST
。
此外, isset()
和 array_key_exists()
都对数组键执行相同的操作,尽管 array_key_exists()
更清晰在数组上下文中。
我建议使用:
error_reporting(E_ALL); //E_ALL - All errors and warnings
在您的开发环境中,因为它可以揭示可能应用更好的实践的地方,例如在使用变量之前无法声明变量等等。
使用$ _REQUEST几乎是一个黑客。你应该使用$ _POST或$ _GET(取决于你在做什么),你应该使用isset()。
我读过的每本关于PHP的书似乎都是这样说的。
通常,至少在测试中,使用error_reporting(E_ALL)在php.ini或代码中设置错误报告到E_ALL(所有错误和警告); (考虑添加E_STRICT 。)事先得到一个关于错误的明显的通知,而不是让你有些微不足道的错误,直到以后才能发现。
避免使用$ _REQUEST,这太模糊了(包括GET,POST和cookie值),并使用$ _POST或$ _GET,如果这些是你真正的意思,并检查 isset($ _ POST [&QUOT; input_name&QUOT;])代码>
简短回答是“是”。 :)