无法使用strcmp功能

时间:2012-09-12 11:53:55

标签: php drupal

PHP中的新手。
我在变量中得到一个数组索引的值为$acc_type = $cur_account['roles']
我按echo $acc_type打印输出,并在屏幕上打印administrator

所以,如果我尝试echo strcmp("administrator", $acc_type);,理想情况下应该打印0,但事实并非如此;而是打印1

我无法理解为什么会这样。我需要进行类型转换吗?我哪里错了?

3 个答案:

答案 0 :(得分:2)

尝试使用var_dump打印变量内容,了解strcmp未返回0的原因。

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

答案 1 :(得分:1)

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

if ($acc_type === "administrator") {
  // Your code
}

但是,如果strcmp返回1,那么你的字符串绝对不一样。你应该用strlen检查字符串长度(可能是前导/尾随空格?)。

答案 2 :(得分:0)

我的猜测是你的一个“管理员”字符串中可能有一个空白字符。 使用strlen()确保它们的长度相同。

使用此代码:

<?php 

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

?>

我能够输出

administrator
0