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