나는 이것이 아마도 나무의 숲이라는 질문 중 하나라는 것을 알고 있지만, 나는 하루 종일 여기 앉아 있었고, 나는 어디서 잘못되고 있는지 보지 못한다.동일한 문자열에 대해서도 항상 문자열 비교가 false를 반환하는 이유는 무엇입니까?
시나리오 : 기본적으로
내가 쿼리과 같이 주소 결과 다음과 같은 ASSOC 배열을 반환 있습니다
Array ([0] => Array ([Address_ID] => 12 [Address_String] => 23 Abledone road Hobs moat Solihull West Midlands B92 4JJ) [1] => Array ([Address_ID] => 13 [Address_String] => 22 Holdean Road Deepcut Surrey KT164NJ) [2] => Array ([Address_ID] => 14 [Address_String] => 32 Palbrough Road Nottingham N32 4NJ) [3] => Array ([Address_ID] => 15 [Address_String] => Flat 2B Gateway House Rutland Street Bearwood Westmidlands B66 9RT) [4] => Array ([Address_ID] => 16 [Address_String] => 258 Lincoln Street Bullworth Street Dundee DD35 9RJ) [5] => Array ([Address_ID] => 17 [Address_String] => 4 Scott Arms Avenue Beckton Hartfordshire H32 7JJ) [6] => Array ([Address_ID] => 18 [Address_String] => 14 Fairfield house Millbank road Bearwood Birmingham Westmidlands B137JJ) [7] => Array ([Address_ID] => 19 [Address_String] => 9 Scott road Olton Solihull Westmidlands B91 7TY) [8] => Array ([Address_ID] => 20 [Address_String] => Normandy House Bunnian Place Basingstoke RG21 7EJ) [9] => Array ([Address_ID] => 27 [Address_String] => 3 New Square Bedfont Lakes Feltham Middlesex TW14 8HB) [10] => Array ([Address_ID] => 28 [Address_String] => No. 1 The Square Temple Quay Bristol BS1 6DG) [11] => Array ([Address_ID] => 29 [Address_String] => The Visual Space Capital Park Fulbourn Cambridge CB21 5XH) [12] => Array ([Address_ID] => 40 [Address_String] => 21 St. Andrew Square Edinburgh Scotland CB21 5XH))
을 내가 할 노력하고있어 모든 검색 문자열에 대한 결과와 일치하는 것이다 주소가 이미 내 데이터베이스에 있는지 확인합니다.
public function addressExistsByString ($searchAddrString, $asJSON = FALSE) {
if (!isset($searchAddrString)) {
throw new Exception('The searchAddrString variable of function ' . __FUNCTION__ . ' of class ' . __CLASS__ . 'was empty or set to NULL.');
} elseif (!is_string($searchAddrString)) {
throw new Exception('The type of value for the argument addressID of function ' . __FUNCTION__ . ' of class ' . __CLASS__ . ' was ' . gettype($searchAddrString) . ' a string was expected');
}if (!is_bool($asJSON)) {
$asJSON = FALSE;
}
print_r ($addressArray = $this->getAllLocations(FALSE));
if ($addressArray === -1) {
return -2;
} else {
$search = str_replace(',','', strtolower(trim($searchAddrString)));
foreach ($addressArray as $record) {
$recID = $record ['Address_ID'];
$currentAddress =str_replace(',','', strtolower(trim($record['Address_String'])));
echo 'Search address: '. $search. ' Current address: '. $currentAddress .' type of current address: '.gettype($searchAddrString).'<br/>';
if ($currentAddress === $search) {
if ($asJSON) {
echo json_encode($recID);
}
return intval($recID);
}
}
if ($asJSON) {
echo json_encode(-1);
}
return -1;
}
}
나는 다음과 같은 출력을 얻을이 코드를 실행 (미안의 조금 긴하지만 중요한 비트가 강조 표시) :
bunnian 장소 베이 싱 스토크을 다음과 같이
내 코드입니다 rg21 7ej 현재 주소 : 23 abledone 도로 호브 해자 solihull 서쪽 midlands b92 4jj 현재 주소 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : 22 holdean 도로 deepcut surrey kt164nj 현재 주소 유형 : 문자열 주소 검색 : normandy house bunnian 장소 basingstoke rg21 7ej 현재 주소 : 32 palbrough road nottingham n32 4nj 현재 주소 유형 : 문자열 주소 검색 : normandy house bunnian 장소 basingstoke rg21 7ej 현재 주소 : flat 2b 게이트웨이 하우스 rutland 거리 bearwood westmidlands b66 9rt 현재 주소의 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : 258 lincoln 거리 bullworth 거리 dundee dd35 9rj 현재 주소 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : 4 scott 무기 번가 beckton hartfordshire h32 7jj 현주소 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : 14 fairfield house millbank road bearwood 버밍엄 westmidlands b137jj 현주소 유형 : 문자열,검색 주소 : 노르망디의 집 bunnian 장소 베이 싱 스토크 rg21 7ej 현재 주소 : 9 스캇 도로 현재 주소의 olton 솔리 헐 웨스트 미들 랜즈 주 B91의 7ty 유형 : 문자열 검색 주소 : 노르망디 집 bunnian 장소 베이 싱 스토크의 rg21의 7ej 현재 주소 : 노르망디 집 bunnian 장소 베이 싱 스토크 rg21 7ej 현재 주소 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : 3 new square bedfont lakes feltham middlesex tw14 8hb 현재 주소 유형 : 문자열 주소 검색 : normandy house bunnian place basingstoke rg21 7ej 현재 주소 : 아니요. 1 square temple quay bristol bs1 6dg 현재 주소 유형 : 문자열 검색 주소 : normandy 집 bunnian 장소 basingstoke rg21 7ej 현재 주소 : visual space capital park fulbourn 캠브리지 cb21 5xh 현재 주소 유형 : 문자열 주소 검색 : normandy house bunnian 장소 basingstoke rg21 7ej 현재 주소 : 21 st. 현재 주소의 앤드류 광장에 딘 버 러 스코틀랜드 CB21 5xh 유형 : -1
강조 문자열이 정확히 동일한 문자열, 나는 그들 모두를 복용하고 문 일반 문자열로하고 경우 별도의 그들을 고집하여 그들을 테스트했습니다 true가 항상 리턴됩니다. 나는 ==, === 캐스팅, 문자열 값과 내가 생각할 수있는 모든 것을 시도했지만, 어떤 이유로 -1이 항상 리턴된다. 나는 그것의 아마 무언가 아주 간단한 Im를 알고있다 그러나 나는 그것을 다만 볼 수 없다, 누군가는 도울 수 있는가?
미리 감사드립니다.
str-length를 확인하거나 디버거에 넣거나'[] '안에 기록하여 여분의 공백을 검사하십시오. – SparKot
중요한 비트를 분리하여 자신의 전체 프로그램에 넣을 수는 없습니까? 대다수의 질문은이 질문과 관련이 없습니다. –
1) 'var_dump'는 우리에게 중요한 물건입니다. 2) 합법적으로 게시 할 수없는 정보 (영국 주소이므로 데이터 보호법에 의거 함)를 비롯하여 불필요한 많은 것들을 게시하는 이유는 무엇입니까? 3) 누락 된 줄 끝 또는 인쇄 할 수없는 문자가 있는지 확인하십시오. – Amelia