我用过:
$multi = array();
// multi is filled with integers $i and $k $multi[$i][$k]
// …
if( count($multi[$i][$k]) + count($multi[$i+1][$k]) + count($multi[$i+1][$k+1]) == 2 ) {}
在PHP 7.2中给出了错误:
错误:count():参数必须是数组或实现Countable
的对象
现在我考虑将if
更改为:
if( !empty($multi[$i][$k]) && !empty($multi[$i+1][$k]) && !empty($multi[$i+1][$k+1])) {}
但是$ multi slot可以有0
作为值,而且如果设置了2个槽,则不计算。
替代方案:
if( isset($multi[$i][$k]) && isset($multi[$i+1][$k]) && isset($multi[$i+1][$k+1])) {}
但是,我的目标是确定设置了两个值。现在我想知道如何计算isset()
s。
也许现在为时尚早,因为我看不到解决方案。
答案 0 :(得分:1)
如果您想计算issets
,请执行此操作。 PHP在求和时将布尔值转换为int
$a = 0;
$b = "";
echo isset($a) + isset($b) + isset($c); // 2
答案 1 :(得分:0)
因为true
可能意味着1
,那么您可以使用+
运算符与isset
一起使其工作
$condition = isset($multi[$i][$k]) + isset($multi[$i+1][$k]) + isset($multi[$i+1][$k+1]);
if($condition == 2) {
echo 'passes'
}