2017-02-14 1 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의 값이 소문자로 항상 있는지 확인합니다. 일부 문자열로 사용자 입력 값을 비교할 때

관련 문제