Php 返回使用foreach处理数组的成功或失败
我有一个PHP函数,它有一个数组作为参数,我使用Php 返回使用foreach处理数组的成功或失败,php,function,return-value,Php,Function,Return Value,我有一个PHP函数,它有一个数组作为参数,我使用foreach来处理数组。我的问题是,如何使用函数已彻底完成foreach过程的条件返回true或false,而不在foreach过程中的一个步骤上发现任何故障 比如: function do_process($array_vars){ foreach($array_vars as $array_var) { //do the process } return (foreach process succes
foreach
来处理数组。我的问题是,如何使用函数已彻底完成foreach
过程的条件返回true
或false
,而不在foreach
过程中的一个步骤上发现任何故障
比如:
function do_process($array_vars){
foreach($array_vars as $array_var) {
//do the process
}
return (foreach process success) ? true : false;
}
您可以在任何时候从函数返回,包括在检测到故障时从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;
}
这取决于你所说的“彻底”是什么意思。
一旦出现问题,您可以立即中止:
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;
}
我会这样做:
function do_process($array_vars){
$success = true;
foreach($array_vars as $array_var){
if (some condition appeared){ $success = false; }
}
return $success;
}
你可以那样做
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;
}
}
希望这就是您的解决方案。
彻底完成了foreach的过程
foreach
对我来说从未失败过~我的意思是当foreach中的一个步骤失败时,对不起,我将编辑我的问题。请不要使用foreach:
/endforeach
语法,它会给我带来身体上的痛苦。这更有意义=)这能确保,那个数组已经被完全处理了?@Aqeel这到底是什么意思foreach
始终遍历所有数组元素。任何可能失败的处理都由您自己来检测。整个$perfect\u过程
变量都是无用的,只是在最后返回true
。如果函数之前返回false
,它将已经返回false
。此外,如果一个数组包含两个相等的值,则会出现错误。