我创建了一个PHP函数来测试$var exist and is not empty
。
但是,我有一个我无法识别的问题:
看:
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;}
}
我将我的功能称为:
- notEmpty(array($val1, $val2, $val3));
答案 0 :(得分:2)
我想这或多或少是你想要的:
<?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));
输出是:
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)