在 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() http://php.net/isset在比较之前。这将消除警告,因为如果出现以下情况,则不会进行比较$_REQUEST['c']
不存在。
if(isset($_REQUEST['c']) && $_REQUEST['c']!="")
{
$pidis=(int)($_REQUEST['c']);
}
它是一个E_NOTICE
等级错误,以及你的等级错误报告 https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting会影响错误是否显示。你的客户端的服务器有E_NOTICE
级别错误报告已打开,这就是它显示在那里的原因。
始终使用以下方式进行开发是一个好主意E_ALL
这样您就可以在将代码移动到其他服务器之前捕获此类错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)