【问题标题】:strcmp gave weird result [closed]strcmp 给出了奇怪的结果[关闭]
【发布时间】:2013-03-14 07:49:46
【问题描述】:

我正在使用 strcmp 来比较数据库中的字符串。

strcmp($privilege,"admin")

我确定数据 $privilege 是 admin 但我从 strcmp 得到的结果是 5

知道为什么会这样吗?没有空间什么的。

【问题讨论】:

  • 如果你确定 $privilege 包含“admin”,你应该确信当你在调试语句中回显它时它会打印出来。
  • >0 排序较高,0 排序相等(因此您可以将其与===0 一起使用),strcmp 做了其他事情,然后你认为它做了,你看过手册中的功能吗?
  • 是的,确保 $privilege 实际上包含“admin”。这可能是一个案例问题。要忽略大小写,请尝试 strcasecmp
  • 人们不能自救了吗?打印出$privilege,看看它包含什么,看在上帝的份上。
  • 是的,我确信它包含管理员。我确实使用 echo 进行了检查

标签: php strcmp


【解决方案1】:

首先,感谢您的回复。

为什么返回 5?这是因为数据库。

我使用 nchar (MSSQL) 来存储它,最多 10 个字符。

"admin" 只使用 5,它会自动添加 5 个空格。

因此我从 strcmp 得到 5。谢谢大佬。

对我来说是一个很好的教训。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多