foreach()无效参数

时间:2013-10-25 10:49:27

标签: php

我使用这个PHP函数来删除一些数组元素。

function deleteEx ($ind, $kl) {
     global $exs;

     foreach ( $exs as $key => $examples )
             if ( $examples['KL'] == $kl && $examples['id'] == $ind)
                unset( $exs[$key] );
}

我有2个不同的函数在计算过程中调用它: 第一个就是这个:

function deleteSub ($editing) {
     global $subs, $exs;

     $kl= $_POST['kl'];

     foreach ( $subs as $key => $subject )
             if ( $subject['knowledgeLevel'] == $kl )
                unset( $subs[$key] );

     if ($editing == 0) {
          for ( $i=1; $i <= count($exs); $i++)
              deleteEx($i, $kl);

          header("refresh:0;url=backdoor.php");
          exit;
     }
}

第二个就是:

function editSub () {
     $kl= $_POST['kl'];

     for ($i= 1; $i<= $_POST['nofexamples']; $i++) {
         if (strcmp ($_POST['oldex'.$i], $_POST['example'.$i]) != 0)
            deleteEx($i, $kl);
     }
     deleteSub (1);
}

在第一个函数中调用函数deleteEx一切正常,结果是预期的结果。在第二个函数中调用函数deleteEx我得到警告:为foreach()提供的参数无效,结果不符合我的预期。如何消除警告? (我猜这就是函数不能正常工作的原因)。

1 个答案:

答案 0 :(得分:0)

首先,您的 globals

会出现语法错误

替换

global $subs $exs;

global $subs,$exs;