확실하지 문자열과 정수를 비교할 때 잘못된 결과를 반환하지만 간단한 id
검증을뭔가 또는 무엇을 확인할 수 없습니다 경우
$id = '2s2';
var_dump($id);
var_dump($id*1);
if ($id != ($id*1) || $id <= 0) {
die('wrong id');
}
die('here?');
결과가있는 경우 :
string '2s2' (length=3)
int 2
here?
이 검사를 id
이 값이 0 이하이면 id multiplied by 1
또는과 같습니다. 따라서 $id = '2s2;
의 값은 같지 않습니다 (덤프에서 볼 수있는 것처럼).
왜 울리지 않습니까? wrong id
?
가 왜 문자열을 곱하여됩니다 또한
$id
정수의 경우 테스트하기 훨씬 쉬운 방법이? BTW는 1을 곱한 모든 것이 그 자체입니다. 그렇지 않습니까? –
문자열에 1을 곱하면 int로 변환됩니다. 이유를 이해하려고 노력 중입니다. – Phiter
@PhiterFernandes 오, 알았어, 매우 더러운 소리. –