我有一个PHP函数,它有一个数组作为参数,我使用foreach
来处理数组。我的问题是,如何通过使用函数完全完成true
过程的条件返回false
或foreach
,而不会在其中一个步骤中发现任何失败foreach
内的进程?
类似的东西:
function do_process($array_vars){
foreach($array_vars as $array_var) {
//do the process
}
return (foreach process success) ? true : false;
}
答案 0 :(得分:4)
这取决于你所说的“彻底” 一旦出现问题,你就可以中止:
function foo($array) {
foreach ($array as $foo) {
if (/* something or other */) {
return false;
}
...
}
return true;
}
或者你可以继续完成阵列的其余部分,但要记住出了问题:
function foo($array) {
$success = true;
foreach ($array as $foo) {
if (/* something or other */) {
$success = false;
}
...
}
return $success;
}
答案 1 :(得分:2)
您可以在任何时候从函数返回,包括在检测到失败时从foreach循环中返回:
function do_process($array_vars){
foreach($array_vars as $array_var) {
// do the process
if (this step of the process failed)
return false;
}
// The foreach loop must have completed successfully
return true;
}
答案 2 :(得分:2)
我会这样做:
function do_process($array_vars){
$success = true;
foreach($array_vars as $array_var){
if (some condition appeared){ $success = false; }
}
return $success;
}
答案 3 :(得分:-1)
你可以这样做。
function process($array_items) {
foreach($array_items as $item) {
//processing to array goes here......
if($some_bottle_neck or $failure)
return false;
if($item == end($array_items))
return true;
}
}
希望这是您的解决方案。