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