2013-06-29 2 views
-2

왜 이러한 오류가 발생합니까?"잘못된 문자열 오프셋"오류가 발생하는 이유는 무엇입니까?

경고 '욕실'오프셋 불법 문자열 C에서 : \ XAMPP \ htdocs를 \ 48

경고 라인 \의 stream.class.php 포함 \ XAMPP \ C에서 '욕실'오프셋 불법 문자열 htdocs \ includes 60 행의 stream.class.php

여기 내 코드가 있습니다.

$s['target_data']['title'] = $s['target_data']['title']['en']; 
$s['target_data']['description'] = $s['target_data']['description']['en']; 

답변

3

문제는 $s['target_data']['title']은 예상 한 것처럼 배열이 아니라 문자열입니다.

PHP는 ($string[0] 예를 들어, $string의 첫 번째 문자를 반환),하지만 그건 단지 [0] 같은 숫자 인덱스와 함께 작동 문자열로 인덱스 배열 형 구문을 사용할 수 있습니다 - 당신은 ["en"], 같은 문자열 인덱스를 사용할 수없는 그 오류가 불평하는 것입니다.

표시된 코드는 배열의 변수를 문자열로 변환하고 동일한 변수에 다시 저장하려고 시도하는 것 같습니다. 아마도 두 번 실행했을 수도 있습니다 - 그리고 더 이상 배열이 아니기 때문에 두 번째로 오류가 발생합니까?

+0

이유로 전송할 수 있습니다 downvote? 이 대답에 문제가 있습니까? – jcsanyi

-1
(array) $s['target_data']['title'] = (array) $s['target_data']['title']['en']; 


    (array) $s['target_data']['description'] = (array)$s['target_data']['description']['en']; 

경우 $의 [ 'target_data'] [ '설명']와 $의 [ 'target_data'] [ '제목']하지 배열, 당신이 (배열)

+0

그게 오류를 해결할 수도 있지만, 항상'null'을 반환 할 것이고 (아마도 정의되지 않은 배열 인덱스에 대한 경고를 생성 할 것입니다.) 실제로'en' 요소를 찾는 데는별로 도움이되지 않습니다. – jcsanyi

+0

맞습니다. 통지가 표시됩니다. [en] index가 null의 경우, 결과는 항상 null가됩니다. 그런 다음 [en] 색인에서 작업해야합니다. –

관련 문제