strcmp() 没有按预期工作

strcmp() not working as expected

echo($menuVal['icon']);
/* if($menuVal['icon'] !== 'fa-dashboard' ){
$menuHTML .= '<span class="ico fa fa-fw fa-chevron-right"></span>';
}*/
$cont=strcmp($menuVal["icon"],"fa-dashboard");
echo($cont);
if((strcmp($menuVal["icon"],"fa-dashboard")) != 0 ){
    $menuHTML .= '<span class="ico fa fa-fw fa-chevron-right"></span>';
}

在这段代码中,我尝试使用 php 打印图标,如果它的值不等于 fa-dashboard,我认为如果输入相等,strcmp 将产生输出零,但在此代码中,当两个字符串相等时,strcmp 将产生 243 的输出,并且当输入 243 而不是 0 时 if 条件有效。

我添加了下面获得的输出,我还检查了 $menuVal['icon'] 的值以检查它打印的内容,

fa-dashboard 243fa-globe 768fa-puzzle-piece 3072fa-pie-chart
3072fa-gears 768fa-anchor -768

这段代码有什么错误吗?我该如何解决? 任何帮助将不胜感激.........!!!

您检查整个字符串是否等于 fa-dashboard 而不是。

如果 fa-dashboard 始终是第一项,您可以使用 strncmp 仅匹配前 n 个字符。

int strncmp ( string $str1 , string $str2 , int $len )

This function is similar to strcmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.