에서 true와 false를 모두 반환하는 명령문의 경우 다음 명령문은 실행할 때 "do actions! what2"를 반환합니다. 무슨 일 이니? 그것은 진실과 거짓 모두가 반환되고있는 것처럼 보입니다!PHP
if (md5($email) == $emailHash) {
echo "do actions!";
} else {
echo "what2";
}
에서 true와 false를 모두 반환하는 명령문의 경우 다음 명령문은 실행할 때 "do actions! what2"를 반환합니다. 무슨 일 이니? 그것은 진실과 거짓 모두가 반환되고있는 것처럼 보입니다!PHP
if (md5($email) == $emailHash) {
echo "do actions!";
} else {
echo "what2";
}
기회 없음 - 코드를 두 번 호출합니다.
이 실제 문제는이 코드에서 발생합니까? 지금의 상황이기 때문에 일어날 수있는 방법이 없습니다. 실제 코드가 아닌 경우 조건부 이후에 첫 번째 블록 앞에 세미콜론이 있는지 확인하십시오.
실제 조건과 거짓 조건이 모두 표시되는 이중 함수 호출? debug_print_backtrace 함수를 사용하여 stacktrace를 생성하고 두 번 이상 호출되는지 확인할 수 있습니다.
코드가 for
또는 while
루프 (또는 그렇지 않으면 두 같은 함수로 호출되는) 경우가 if
처음 거짓 번째 진정한 평가되어있을 수있다. 그렇지 않으면, 나는 그것이 일어날 이유가 전혀 없다.
주변 코드가 잘못되었다고 생각합니다. 이 점에 아무런 문제가 없습니다. 또한 2 개가 아닌 if 조건에 세 개의 등호 ===를 넣으십시오.
if 조건보다 더 많은 코드가 필요하다고 생각합니다. 내 상자에 "what2"이 맞습니다.
if (md5($email) === $emailHash)
{
echo "do actions!";
}
else
{
echo "what2";
}
이 문제가 발생할 수있는 방법은 없습니다. 더 자주 우리는 언어에 버그가 있다고 생각할 때, 우리는 어떤 일도 잘못하지 않았다고 생각합니다. 그러나 코드에는 항상 바보 같은 것이 있습니다. 코드를 다시 확인해야합니다.
나는 바로 거기에 무슨 일인지 모르겠지만, 같은 문제에 대한이 같은 일을로 사용하고 있습니다 : 디버깅을,
$userHash = md5($email);
if ($userHash == $emailHash) {
// etc...
}
따라서 한 번에 문마다 하나의 일을 더 쉽습니다.
더 많은 코드를 게시하십시오. 실행 횟수가 두 번 이상인 것 같습니다. –
예 뭔가 잘못 됐습니다. 뭔가가 '사실'과 '거짓'일 수는 없습니다. 다른 사람이 계속 진행 중입니다. –
아마도 여기가 시간입니다. 우주가 무너진다! –