如果在foreach方法内的所有方法调用均返回true

时间:2018-12-10 20:03:46

标签: php

我在使用foreach时遇到了问题,本质上,如果foreach循环中的IF语句返回true,则我的方法应该返回true,但是问题是该语句仅针对数组中的第一个元素而不是整个数组执行。我尝试搜索,但是找不到我的问题的明确答案。这是我的代码段

public function SaveDisplayOrder($aUnitCustomField)
{
    var_dump($aUnitCustomField);
    foreach($aUnitCustomField as $pUnitCustomField)
    {
      if (CUnitCustomFieldsTable::SaveUnitCustomField($pUnitCustomField))
      {
          return true;
      }
    }
    return false;
}

因此,如果SaveUnitCustomField方法对$aUnitCustomField的第一个元素返回true并停止执行,则返回此值,如何检查整个SaveUnitCustomField数组的$aUnitCustomField

1 个答案:

答案 0 :(得分:2)

您知道什么比“失败的事情”更好吗? “这些特定的操作失败了”,因此您可以采取实际行动。

public function SaveDisplayOrder( $aUnitCustomField ) {
    $returnValue = true;
    $errors = [];
    foreach( $aUnitCustomField as $pUnitCustomField ) {
        if ( ! CUnitCustomFieldsTable::SaveUnitCustomField($pUnitCustomField) )   {
            $returnValue = false;
            $errors[] = "Error when saving $pUnitCustomField";
        }
    }
    return [$returnValue, $errors];
}