반응형
PHP-이 잘못된 오프셋 유형 오류를 어떻게 수정합니까?
나는 얻고있다
잘못된 오프셋 유형
이 코드를 반복 할 때마다 오류가 발생합니다. 코드는 다음과 같습니다.
$s = array();
for($i = 0; $i < 20; $i++){
$source = $xml->entry[$i]->source;
$s[$source] += 1;
}
print_r($s)
개체 또는 배열 을 인덱스 키로 사용하여 배열 인덱스에 액세스하려고하면 잘못된 오프셋 유형 오류가 발생 합니다.
예:
$x = new stdClass();
$arr = array();
echo $arr[$x];
//illegal offset type
귀하의 $xml
배열에서 객체 나 배열을 포함 $xml->entry[$i]->source
일부 값에 대해 $i
, 당신은에 대한 인덱스 키로 그것을 사용하려고하면 $s
, 당신은 경고를 얻을. $xml
원하는 내용이 포함되어 있고 올바르게 액세스하고 있는지 확인해야 합니다.
trim($source)
전에 사용하십시오 $s[$source]
.
$ xml-> entry [$ i]가 존재하고 속성을 가져 오기 전에 객체인지 확인하십시오.
if(isset($xml->entry[$i]) && is_object($xml->entry[$i])){
$source = $xml->entry[$i]->source;
$s[$source] += 1;
}
또는 $ source는 유효한 배열 오프셋이 아니라 배열, 개체, 리소스 또는 null 일 수 있습니다.
XML에 20 개 미만의 항목이있을 수 있습니다.
이 코드를 변경
for ($i=0;$i< sizeof($xml->entry); $i++)
...
비슷한 문제가있었습니다. XML 자식에서 문자를 얻었을 때 먼저 문자열 (또는 예상하는 경우 정수)로 변환해야했습니다. 다음은 문제를 해결 한 방법을 보여줍니다.
foreach($xml->children() as $newInstr){
$iInstrument = new Instrument($newInstr['id'],$newInstr->Naam,$newInstr->Key);
$arrInstruments->offsetSet((String)$iInstrument->getID(), $iInstrument);
}
참고 URL : https://stackoverflow.com/questions/2732451/php-how-do-i-fix-this-illegal-offset-type-error
반응형
'developer tip' 카테고리의 다른 글
Vim 구성 줄 번호 색상 (0) | 2020.10.14 |
---|---|
ASP.net Repeater는 현재 인덱스, 포인터 또는 카운터를 가져옵니다. (0) | 2020.10.14 |
시각적 선택의 모든 줄에 Vim 매크로 (0) | 2020.10.14 |
VIM : Ubuntu에서 정확한 줄로 이동하는 방법 (0) | 2020.10.14 |
Python : 경고음 만들기 (0) | 2020.10.13 |