PHP를 개발하다 보면 한 구조에서 다른 구조의 필드를 사용하는 상황을 자주 접하게 됩니다. 그러나 이를 키로 직접 참조하면 코드가 복잡해지고 유지 관리가 불가능해질 수 있습니다. 그렇다면 다른 구조에서 구조 필드를 어떻게 사용합니까? PHP 편집기 Baicao는 코드를 더 명확하고 쉽게 읽을 수 있도록 간결하고 명확한 솔루션을 제공합니다. 아래를 살펴보겠습니다!
구조체 이름을 사용하지 않고 다른 구조체에 구조체 필드를 삽입하고 싶습니다.
나는 이것을 할 수 있다는 것을 안다:
으아악그러나 다음과 같은 구조가 생성됩니다.
으아악이런 일을 어떻게 할 수 있나요?
으아악이렇게 사용하세요
으아악가능한가요?
간단히 말하면, 현재 언어 구현으로는 할 수 없습니다.
텍스트를 초기화할 때는 명시적이어야 합니다(즉, text![sic]). user
包含 person
,因此文字 user
必须包含文字 person
이후로 다음과 같습니다:
그러나 user
유형의 user
类型的变量,您就可以利用匿名字段通过 user
设置(或获取)匿名 person
的 name
변수
user
를 통해 익명 가서 나한테 이 모든 일을 시키는 이유는 무엇일까? person
: user
结构并添加它自己的 name
으아악
user
구조를 수정하고 추가 자체 필드를 추가한다고 상상해 봅시다.
으아악
name
이제
필드를 user.person.name
的代码相同,但现在它正在初始化 user.name
초기화할 수 있습니다:
추가 질문
user
中添加 name
字段已经类似地“破坏”了 user
变量上对 name
이러한 코드에는 더 많은 함정이 숨겨져 있습니다.
먼저, user
에 person
字段,user.person.name
필드
user
변수에서 에 대한 정규화되지 않은 참조가 name
字段,则 this 是编组为 "name"
的字段,并且 user.person.name
유사하게 "손상"됩니다.
으아악
또한 익명
user.person.name
필드는 기본적으로 "name" 필드로 json에 마샬링됩니다.
으아악
user.person.name
添加 json
this는 "name"
으로 마샬링된 필드이고 user.person.name
필드는 전혀 마샬링되지 않습니다. person
被编组为带有 name
> .
좋아요
하지만 이제 person
的编组字段名称,即使 user
没有 name
은
객체
로 마샬링됩니다. 🎜 으아악 🎜🎜이런 일은 🎜user
에 🎜 필드가 없더라도 익명의 🎜 마샬링 필드 이름을 변경하려고 하면 발생합니다. 🎜
🎜간단히 말하면, "필드 추가" 방법으로 구조체 내에서 익명 구조체를 사용하는 것은 문제가 있고 취약할 수 있으므로 피해야 합니다. 🎜위 내용은 키로 참조하지 않고 다른 구조체의 구조체 필드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!