PHP递归函数,返回错误
我创建了一个PHP函数来测试$var是否存在并且不是空的 但是,我有一个我无法识别的问题: 在我的foreach中,return false被忽略,因为另一个“return”首先返回。 看:PHP递归函数,返回错误,php,arrays,return,Php,Arrays,Return,我创建了一个PHP函数来测试$var是否存在并且不是空的 但是,我有一个我无法识别的问题: 在我的foreach中,return false被忽略,因为另一个“return”首先返回。 看: function notEmpty($var, $r=false){ if(gettype($var)=='string' OR gettype($var)=='integer'){ if($r==false){ if(isset($var) AND
function notEmpty($var, $r=false){
if(gettype($var)=='string' OR gettype($var)=='integer'){
if($r==false){
if(isset($var) AND @!empty($var)){
return true;
}else{return false;}
}else{
if(!isset($var) AND @empty($var)){
return false;
}
}
}elseif(gettype($var)=='array'){
foreach($var as $val){
if(gettype($val)=='array'){
notEmpty($val, true);
}else{
if(empty($val) OR $val==''){echo "string";
return false;
}
}
}
return true;
}else{return null;}
}
我调用我的函数如下:
-notEmptyarray$val1、$val2、$val3 我想这或多或少就是你想要的:
<?php
function notEmpty($array, $recursive=false) {
$empty = array_filter($array, function($element) use ($recursive) {
if (is_array($element) && $recursive) {
return !notEmpty($element);
} else {
return empty($element);
}
});
return 0===count($empty);
}
var_dump(notEmpty([1, 2, 3]));
var_dump(notEmpty(['foo', '', 'bar']));
var_dump(notEmpty(['foo', null, 'bar']));
var_dump(notEmpty(['foo', [1,2,3], 'bar']));
var_dump(notEmpty(['foo', [1,null,3], 'bar']));
var_dump(notEmpty(['foo', [1,null,3], 'bar'], true));
在该代码中,$r表示什么?你最好为你的变量使用自我解释的名称。看看你需要对notEmpty的内部调用的返回值做出什么反应。当前您完全忽略它。您的ifempty$val或$val==条件为redundant@alpadev这里的一切都是多余的
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)