-1

我在错误日志中出现了致命错误,但由于某种原因它根本不会影响应用程序。这是正在运行的代码,它生成 PHP 错误的原因毫无意义。

for ($i = 1; $i <= $tournament['num_score_fields']; $i++) {

            $scoresArrayTemp = array(
                'score',
                'dist',
                'dateShot',
                'tens', 
                'nines'
                );

            foreach($scoresArrayTemp AS $val){
                if(empty($scores[$i][$val])){
                    $scores[$i][$val] = ''; 
                }
            }
}

错误是由这一行产生的

$scores[$i][$val] = ''; 

任何帮助将不胜感激谢谢!

根据答案 1,我将代码更改为:

for ($i = 1; $i <= $tournament['num_score_fields']; $i++) {


            $scoresArrayTemp = array(
                'score'=>'',
                'dist'=>'',
                'dateShot'=>'',
                'tens'=>'', 
                'nines'=>''
                );

            if(!is_array($scores[$i])){
                $scores[$i] = $scoresArrayTemp;
            }

            echo $scores[$i]['score'];
}

回显变量时仍然在最后一行出现错误

4

2 回答 2

0

我对您的代码进行了一些更改以检查问题出在哪里:

<?php
$tournament['num_score_fields'] = 10;
for ($i = 1; $i <= $tournament['num_score_fields']; $i++) {

        $scoresArrayTemp = array(
            'score',
            'dist',
            'dateShot',
            'tens', 
            'nines'
            );

        foreach($scoresArrayTemp AS $val){
            if(empty($scores[$i][$val])){
                $scores[$i][$val] = ''; 
                echo 'a';
            }
        }
}

?>

输出是:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

老兄,这里没有错误..可能是由于任何其他原因。再次从上到下检查代码或显示即将发生的确切错误。

于 2013-08-23T17:56:59.377 回答
0

$scores[$i]不是数组,因此 PHP 会阻止您将值分配给$val. 你可能想要这个:

if(is_array($scores[$i]) && empty($scores[$i][$val])){
    $scores[$i][$val] = ''; 
}
于 2013-08-23T17:47:50.050 回答