我创建了一个简单的函数,该函数根据哪些键具有匹配的值返回一个值,但如果键为空或 null 则不计算在内。我的代码如下。
function getFontData(){
$font = [];
$font['Font'] = 'Arial';
$font['Font2'] = 'Arial';
$font['Font3'] = 'Arial';
return $font;
}
function compareFonts(){
$compare = 0;
$font = getFontData();
if (!empty($font['Font']) && $font['Font'] === $font['Font2']) {
$compare = 1;
} elseif (!empty($font['Font']) && $font['Font'] === $font['Font3']) {
$compare = 2;
} elseif (!empty($font['Font2']) && $font['Font2'] === $font['Font3']) {
$compare = 3;
}elseif (!empty($font['Font']) && $font['Font'] === $font['Font2'] && $font['Font2'] === $font['Font3']) {
$compare = 4;
};
return $compare;
}
$matches = compareFonts();
var_dump($matches);
我遇到的问题是,我为识别三个相同数组键的函数编写的代码似乎没有在我的 if 语句中执行。此示例中的输出为 1。这向我表明我的代码正在返回第一个 if 语句,这在本质上是正确的,因为“font”和“font2”都匹配,因此代码不需要更进一步。
我假设有更好的方法可以做到这一点,或者我的方法完全错误。欢迎所有建议。
问候
w9914420