1. **isset() 函数配合 count():**
`count()`函数用于计算数组元素的数量或对象属性个数,如果结合`isset()`来使用,则能很好地判断数组是否存在并同时确认其内容是否有数据。
php
if (isset($array) && count($array)) {
// 数组不为空
} else {
// 数组为空或者未定义
}
2. **empty() 函数:**
这是一个非常直接的方法,当变量不存在、为NULL 或者非布尔真(false、0、“” 等)以及大小为零的字符串、数字阵列都视为“空”。对于数组而言,只要其中没有任何元素,就会返回true表示该数组为空。
php
$array = array();
// 检查 $array 是否为空
if (empty($array)) {
echo "Array is empty.";
}
// 如果数组不是空则执行其他操作...
else {
// ...
}
3. **通过 isset 和 sizeof / count 的简写形式:**
考虑到性能优化,如果你确定 `$array` 是已声明并且仅需要查看它是否包含任何项目,可以直接用下面的方式简化代码:
php
if (!sizeof($array)) { // or if(!count($array))
echo 'The Array is Empty.';
}
这里需要注意的是,“!sizeof(array)”等同于"empty()"的功能,但不具备相同的安全性——因为它不会首先验证数组的存在与否。
4. **遍历/foreach循环:**
虽然这不是最高效的做法,但在某些情况下你可能希望通过尝试迭代数组的方式来检验其实体存在情况:
php
function isArrayEmptyWithForeach ($arr){
foreach ($arr as $value) {
return false; // 若能找到至少一项即认为不为空
}
return true;
}
if(isArrayEmptyWithForeach($my_array)){
echo "Array is empty";
}else{
echo "Array has elements";
}
5. 使用现代版本的 PHP 中新增的 `iterable_count()` 函数:
从 PHP 8 开始引入了更为简洁直观的新特性 - iterable_count() 函数,它可以安全地获取可迭代对象如数组的实际数量,并适用于空值检测场景:
php
$array = [];
if(iterable_count($array) === 0){
echo "The array is empty.";
} else {
echo "There are items in the array.";
}
总结起来,尽管有许多种手段可以在PHP中实现数组为空的判定,通常推荐优先采用`empty()`或是与`count()/sizeof()`搭配使用的做法,因为它们更符合直觉也相对简单易读;而在支持的情况下利用新特性的`iterable_count()`也是一个不错的选择。具体选择哪种取决于实际应用场景的需求及偏好。
标签: php如何判断数组为空