객체 배열 PHP JSON 배열 및 객체 이해

WBOY
풀어 주다: 2016-07-28 08:25:55
원래의
682명이 탐색했습니다.

PHP 백엔드와 클라이언트 데이터 간의 상호 작용 중에 JSON 데이터는 때로는 불규칙한 형식을 가지며 때로는 배열, 때로는 개체이므로 클라이언트 개발자는 곧 무너질 것 같은 느낌을 받습니다.

따라서 프론트엔드, 백엔드 관련 담당자가 PHP의 json_encode 함수 원리를 반드시 이해하는 것이 가장 중요한 단계입니다.

PHP의 배열은 필요한 시나리오에 따라 구조를 설명하기 위해 많은 제한적인 데이터 유형을 정의하는 다른 언어와는 달리 PHP 프로그래머가 설명하기 어렵습니다. 어떤 구조의 데이터가 클라이언트 직원에게 명확하게 반환됩니까?

PHP를 통해 배열 데이터가 당연히 json으로 인코딩되는데, 출력값이 배열일 때도 있고, 객체일 때도 있는 상황이 됩니다.

<code><span><?php</span><span>/*</span><span>如果你想生成一个json格式的数组格式(Vector)而非对象格式(Map)的,那么数据的下标:</span><span>必须是数字索引,</span><span>必须从0开始,</span><span>必须从小到大依次增加、中间不可以跳跃、顺序不可变动.</span><span>*/</span><span>//符合数组</span><span>$vector</span> = <span>[</span><span>12</span><span>,</span><span>23</span><span>,</span><span>18</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$vector</span><span>);</span><span>//符合数组</span><span>$vector2</span> = <span>[</span><span>0</span> => <span>12</span><span>,</span><span>1</span> => <span>23</span><span>,</span><span>2</span> => <span>18</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$vector2</span><span>);</span><span>//不符合数组,下标有跳跃</span><span>$map</span> = <span>[</span><span>0</span> => <span>12</span><span>,</span><span>1</span> => <span>23</span><span>,</span><span>2</span> => <span>18</span><span>,</span><span>4</span> => <span>20</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$map</span><span>);</span><span>//不符合数组,下标顺序不对</span><span>$map</span> = <span>[</span><span>0</span> => <span>12</span><span>,</span><span>1</span> => <span>23</span><span>,</span><span>3</span> => <span>18</span><span>,</span><span>2</span> => <span>20</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$map</span><span>);</span><span>//不符合数组,下标没有从0开始</span><span>$map_1</span> = <span>[</span><span>1</span> => <span>'111'</span><span>,</span><span>2</span> => <span>'asdfa'</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$map_1</span><span>);</span><span>//典型的对象格式</span><span>$map_2</span> = <span>[</span><span>'abc'</span> => <span>1</span><span>,</span><span>'de'</span> => <span>2</span><span>,</span><span>'fi'</span> => <span>null</span><span>];</span><span>echo</span><span>json_encode</span><span>(</span><span>$map_2</span><span>);</span><span>/**</span><span> * 请注意上面的变量命名,对应于Hack中的概念,Vector和Map为两种数据集合类型</span><span> * 如果你需要将"索引数组"强制转化成"对象",可以这样写</span><span> * json_encode((object) $a);</span><span> * 或</span><span> * json_encode ($a, JSON_FORCE_OBJECT);</span><span> *</span><span> */</span></span></code>
로그인 후 복사

해결책은 무엇인가요?

은 Vector와 Map의 두 가지 데이터 구조를 PHP를 통해 캡슐화하는 클래스입니다. json 출력 구조를 구성할 때 구조의 확실성을 보장하기 위해 이 두 가지 유형을 캡슐화 및 변환에 사용합니다.

위의 내용은 객체 배열의 내용을 포함하여 객체 배열, PHP JSON 배열 및 객체에 대한 이해를 소개하며 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!