php - 如果 foreach 方法中的所有方法调用都返回 true,则 PHP 返回 true
问题描述
我在使用 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
方法对第一个元素返回 true$aUnitCustomField
并停止执行,则返回,我如何检查SaveUnitCustomField
整个 $aUnitCustomField
数组。
解决方案
你知道什么比“失败”更好吗?“这些具体的事情失败了”,所以你可以真正采取行动。
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];
}
推荐阅读
- jquery - 如何在表的一列中使用 JQuery 中的超链接
- cgal - 如何将路径转换为 CGAL 结构
- docker - 错误:连接到正在运行的容器 -Docker 远程容器时,在建立安全 TLS 连接之前客户端网络套接字断开连接
- laravel - 在 Laravel 7 的基本控制器中访问用户对象?
- android - 如何使用具有共享首选项的 android studio 在测验应用程序中保存单选按钮的已检查状态
- flutter - 你如何将互联网上的图像下载到 Flutter 中的文件中?
- arrays - 在结构中切片,不能在切片文字中使用 int64 类型作为 int
- string - 任何人都可以解释这个错误以及这个案例,比如为什么我不能等同于这两个值?
- java - 组织和应用程序级别的 Okta 多因素身份验证
- javascript - 在堆栈中反转 ABCD 的最小推送操作数是多少?