PHP를 사용하여 유효하지 않거나 숫자 속성 이름이 있는 객체에 액세스
JSON 데이터를 구문 분석하기 위해 PHP에서 json_decode() 함수를 활용하려고 할 때 , 이름이 정수인 속성에 액세스하는 데 어려움이 있거나 유효한 변수 명명 규칙을 준수하지 못할 수 있습니다. 이 동작은 해당 속성이 있는 객체를 처리할 때 PHP의 고유한 제한에서 비롯됩니다.
제한 사항 및 특이사항
솔루션
솔루션 #1: 수동 Typecasting
유효하지 않은 속성에 액세스하려면 개체를 배열로 수동으로 캐스팅하세요. 이름:
$a = array('123' => '123', '123foo' => '123foo'); $o = (object) $a; $a = (array) $o; echo $a['123']; // OK!
해결책 #2: Nuclear 옵션
재귀 함수를 사용하여 객체를 배열로 변환:
function recursive_cast_to_array($o) { $a = (array) $o; foreach ($a as &$value) { if (is_object($value)) { $value = recursive_cast_to_array($value); } } return $a; } $arr = recursive_cast_to_array($myVar); $value = $arr['highlighting']['448364']['Data']['0'];
해결책 #3: JSON 함수
배열로의 재귀 변환을 위해 내장된 JSON 함수를 활용하세요.
$arr = json_decode(json_encode($myVar), true); $value = $arr['highlighting']['448364']['Data']['0'];
요구 사항에 가장 적합한 솔루션을 선택하기 전에 각 솔루션의 단점을 고려하는 것이 중요합니다. . 예를 들어 솔루션 #2와 #3은 불필요한 배열 변환을 수행하는 반면, 솔루션 #3은 문자열 속성을 UTF-8로 인코딩해야 합니다.
위 내용은 `json_decode()`를 사용하여 PHP에서 유효하지 않거나 숫자 속성 이름을 가진 객체에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!