>백엔드 개발 >PHP 튜토리얼 >PHP에서 잘못된 문자가 있는 개체 속성에 어떻게 액세스할 수 있나요?

PHP에서 잘못된 문자가 있는 개체 속성에 어떻게 액세스할 수 있나요?

DDD
DDD원래의
2024-12-14 01:57:10528검색

How Can I Access Object Properties with Invalid Characters in PHP?

잘못된 이름으로 개체 속성에 액세스

PHP에서는 속성에 대시와 같은 잘못되거나 잘못된 문자가 있는 개체가 나타날 수 있습니다. (-). 일반 속성 접근자가 실패하더라도 이러한 값을 검색할 수 있는 해결 방법이 있습니다.

해결책 1: 대괄호 표기

잘못된 이름이 있는 속성에 액세스하려면 다음과 같이 대괄호 표기를 사용하세요. 중괄호({})로 묶인 속성 이름:

$object->{'todo-items'};

해결책 2: 변수 이름 및 연결

또는 속성 이름을 변수에 할당하고 $object 변수와 연결합니다.

$todolist = 'todo-items';
echo $object->$todolist;

예:

객체 덤프 예시 사용 제공됨:

$x = (object) [
    'completed-count' => '0',
    'description' => 'Description String',
    'id' => '12345',
    'todo-items' => (object) [
        'todo-item' => (object) [
            'completed' => 'false',
            'content' => 'content string here',
            'created-on' => '2009-04-16T20:33:31Z',
            'creator-id' => '23423',
            'id' => '234',
            'position' => '1',
            'responsible-party-id' => '2844499',
            'responsible-party-type' => 'Person',
            'todo-list-id' => '234234',
        ],
    ],
];

echo $x->{'todo-items'}[0]->{'todo-item'}->content;

추가 팁:

객체를 배열로 변환하려면 질문과 답변에 제공된 코드 조각을 사용할 수 있습니다.

public function toArray()
{
    $array = array();
    foreach ($this->_data as $key => $value) {
        if ($value instanceof StdClass) {
            $array[$key] = $value->toArray();
        } else {
            $array[$key] = $value;
        }
    }
    return $array;
}

위 내용은 PHP에서 잘못된 문자가 있는 개체 속성에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.