无法使用strcmp函数


unable to use strcmp function

PHP新手
我正在获取变量中数组索引的值$acc_type = $cur_account['roles']
我正在打印echo $acc_type的输出,它在屏幕上打印administrator

所以,如果我尝试了echo strcmp("administrator", $acc_type);,它应该理想地打印0,但它不是;而是打印CCD_ 6。

我不明白为什么会发生这种事。我需要打字吗?我哪里错了?

尝试使用var_dump打印变量的内容,查看strcmp不返回0的原因。

var_dump将打印带引号的字符串以及长度,这有助于找到空白字符或任何阻止字符串相等的字符。

strcmp实际上是比较字符串的一个基本函数。您可以只使用==(或更安全的===)来测试字符串之间的相等性。

if($acc_type==="administrator"){//您的代码}

但是,如果strcmp返回1,那么您的字符串肯定不完全相同。您应该使用strlen检查字符串长度(可能是前导/尾随空格?)。

我的猜测是,您的一个"administrator"字符串中可能有一个空白字符。使用strlen()确保它们的长度相同。

使用此代码:

<?php 
$cur_account['roles'] = 'administrator';
$acc_type = $cur_account['roles'];
echo $acc_type . "<br>";
echo strcmp("administrator", $acc_type);
?>

我能够输出

administrator
0