PHP Notice: Undefined index: parentid in /home/public_html/data/Dataset.php on line 319
PHP Notice: Undefined index: destinations in /home/public_html/data/Dataset.php on line 330
PHP Notice: Undefined index: radiogroup in /home/public_html/data/Dataset.php on line 340
PHP Notice: Undefined index: radiogroup in /home/public_html/data/Dataset.php on line 340
PHP Notice: Undefined index: radiogroup in /home/public_html/data/Dataset.php on line 340
PHP Notice: Undefined index: radiogroup in /home/public_html/data/Dataset.php on line 340
PHP Notice: Undefined index: name in /home/public_html/data/Dataset.php on line 220
PHP Notice: Undefined index: fieldhelp in /home/public_html/data/Dataset.php on line 236
从5.2升级到php 5.3后,我的脚本拒绝工作。我在日志中看到很多PHP Notice。
第319行:if( $this->aFields["parentid"] ) {
第340行:if( $curField["radiogroup"] ) {
我怀疑问题出现在另一个包含许多此类行的文件中
if( isset( $this->request_vars[$name]["id"] ) ) {
我该如何解决这个问题?如果从上面判断就那么容易。
答案 0 :(得分:2)
这不是错误。它说数组$ curField中没有索引“radiogroup”等元素。
您必须首先使用isset检查它是否存在,例如:
if(isset($curField['radiogroup']) and $curField['radiogroup']) {
答案 1 :(得分:1)
未定义的索引意味着您尝试访问不存在的关联数组的键。这应该出现在您的旧配置中,但由于错误报告级别,它从未出现过。
您应该更改代码,以便首先测试变量是否已设置然后使用它。
例如:
更改表单的出现次数:
if( $this->aFields["parentid"] ) {
...
}
到
if( isset($this->aFields["parentid"]) ) {
...
}
答案 2 :(得分:1)
从PHP文档(error_reporting):
<?php
// Turn off all error reporting
error_reporting(0);
?>
该功能的其他有趣选项:
<?php
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
答案 3 :(得分:0)
很难从代码中分辨出来,但我认为错误报告级别已经改变,现在可以显示通知。但是,如果可能不存在变量,则应使用以下内容:
if( isset($this->aFields["parentid"]) ) {
在你的情况下,你可以使用空,因为它会检查它的两个集并且有一个值并且它不等于0 / false(与原始行相同)
if( ! empty($this->aFields["parentid"]) ) {