2017-02-14 9 views
2

私はLaravelプロジェクトに取り組んでおり、予期せぬ問題が発生し始めました。予期しない大文字小文字の問題Laravel

私は、cronジョブによってスクリプトを実行している、とif条件は、スクリプトにあります:

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

問題がアップし、昨日まで、すべてが正常に働いていたが、今日、それは動作を停止していることです。私がデバッグを始めたとき、私はが値= "はい"のために働いていないことを知りました。値が大文字Yで始まる場合、条件を満たすことはありません。つまり、大文字小文字の区別のように動作し始めました。

私は昨日から何が変わったのだろうと思います。 今は動作していない場合は、それ以前に動作していた理由は何ですか?

+0

「はい」というのはどこから来ますか?実際には大文字と小文字の区別が変更されるだけではありません – Jerodev

+0

文字列と比較すると、文字列を小文字に変換することは常にあります。 –

答えて

1

常に単純なルールに従ってください:

if (strtolower(trim($bride->photographer)) == 'yes') { 
    // Code goes here 
} 
  • はそれをトリム。
  • lowercaseまたはuppercase
  • これを比較してください。
+0

これは問題ありませんが、なぜそれが以前に動作していたのかを知りたいですか? –

+0

何が** $ bride-> photographer **に含まれているか確認してください。 –

+0

それにははいが含まれています。適用された状態が常にfalseになるはずですが、なぜ以前に動作していたのか不思議です。大文字と小文字の区別がつかないために失敗したので、大丈夫ですが、どのように動作していたのですか? –

0

ユーザー入力文字列を操作する際には、比較する前に、大文字または小文字に変換するのが最適です。だからあなたの場合には、それはこのような何かするのがベストでしょう:

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

strtolower$bride->photographerの値は小文字で常にあることを確認します。いくつかの文字列にユーザーの入力値を比較するとき

関連する問題