Php sizeof忽略检查的替代方法是可计数的

Php sizeof忽略检查的替代方法是可计数的,php,Php,我想更新一个旧的PHP代码,其中有许多sizeof()函数用于空数组,如: <?php $a=array(); #... if(sizeof($a['somthing_set_later'])>0){ #... } $a['somthing_set_later']="something"; 如果需要一个检查sizeof()并忽略不可数参数的函数,可以在项目标题中定义以下内容: 函数countableSizeof($obj){ 如果(!是可数($obj)){ 返回0;//或您选择的

我想更新一个旧的PHP代码,其中有许多
sizeof()
函数用于空数组,如:

<?php
$a=array();
#...
if(sizeof($a['somthing_set_later'])>0){
 #...
}
$a['somthing_set_later']="something";

如果需要一个检查
sizeof()
并忽略不可数参数的函数,可以在项目标题中定义以下内容:

函数countableSizeof($obj){
如果(!是可数($obj)){
返回0;//或您选择的sentinel值
}
退货金额($obj);
}

为什么不使用自己的函数mysizeof($var){return(!isset($var)| |!is_array($var))?0:count($var)}
为了清楚起见,它是
count()的别名。在PHP7.2中,没有内置的替代函数不会发出警告,这在许多流行的框架中都会引发异常。建议您编写应用程序来处理传递给方法和函数调用的预期数据类型,以避免意外问题。例如使用类型提示/铸造。例如:
函数(数组$var){returncount($var);}
修复往往需要大量松散的代码修补,我自己必须在继承的项目上执行。注意:对于未实现
Countable
的任何非数组值或对象,返回的默认值为
1
,对于
null
,返回的默认值为
0
。因此,作为对
sizeof()
的直接替代,当前的方法将产生不同的结果。是的,这很重要!因此,最好使用副本答案中的示例: