意外的区分大小写问题 Laravel

Unexpected Case Sensitive Issue Laravel

我正在做一个 Laravel 项目并开始收到一些意想不到的问题。

我是运行通过cron作业的脚本,脚本中有一个if条件:

if($bride->photographer == 'yes'){
    // Code goes here
}

问题是昨天之前一切正常,但今天就停止工作了。当我开始调试时,我开始知道 它不适用于值 = "Yes"。如果值以大写 Y 开头,则不满足条件。简而言之,它已开始表现为 区分大小写

我想知道自昨天以来发生了什么变化。 如果它现在不工作那么为什么它以前工作?

处理用户输入的字符串时,最好的办法是在比较之前将它们转换为大写或小写。所以在你的情况下,最好做这样的事情:

if (strtolower($bride->photographer) === 'yes') {
    // Code goes here
}

strtolower 将确保 $bride->photographer 的值始终为小写。

在将用户输入值与某个字符串进行比较时始终遵循简单规则:

if (strtolower( trim( $bride->photographer ) ) == 'yes') {
    // Code goes here
}
  • Trim吧。
  • 将其转换为lowercaseuppercase
  • 比较一下。