在 php 页面中我有以下代码:
if($_REQUEST['c']!="") // I get error on this line itself. Why?
{
$pidis=(int)($_REQUEST['c']);
}
我不断收到“未定义索引”错误。
通过谷歌搜索,我设法理解,如果我们尝试访问的页面没有参数(在 URL 中),我们会收到此错误/警告。我相信,如果 URL 中未定义参数,它应该返回空而不是给出错误/警告消息。
我知道可以通过添加来抑制错误和警告
error_reporting(E_ALL ^ E_NOTICE);
但我不想这样做。
同一页面在我们公司的网络服务器上工作得很好,但在我们客户的网络服务器上却不起作用。
为什么会发生这种情况?
如何解决这个问题?
最佳答案
您收到该错误是因为您尝试将 $_REQUEST['c']
与 $_REQUEST['c']
不存在的情况进行比较。
解决方案是使用 isset()在比较之前。这将消除警告,因为如果 $_REQUEST['c']
不存在,则不会进行比较。
if(isset($_REQUEST['c']) && $_REQUEST['c']!="")
{
$pidis=(int)($_REQUEST['c']);
}
这是一个 E_NOTICE
级别错误,您的级别为 error reporting会影响错误是否显示。您客户端的服务器已打开 E_NOTICE
级别错误报告,这就是它显示在那里的原因。
始终使用 E_ALL
进行开发是一个好主意,这样您就可以在将代码移动到其他服务器之前捕获此类错误。
关于php - 未定义索引 : Error in php script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160368/