내가 stdObject
말을하면 $a
.
새 속성을 할당하는 데 아무런 문제가 없습니다 $a
.
$a->new_property = $xyz;
그러나 제거하고 싶습니다 unset
. 여기서 도움이되지 않습니다.
그래서,
$a->new_property = null;
그런 종류입니다. 그러나 더 ‘우아한’방법이 있습니까?
답변
unset($a->new_property);
이것은 배열 요소, 변수 및 객체 속성에 적용됩니다.
예:
$a = new stdClass();
$a->new_property = 'foo';
var_export($a); // -> stdClass::__set_state(array('new_property' => 'foo'))
unset($a->new_property);
var_export($a); // -> stdClass::__set_state(array())
답변
객체를 반복하는 경우에도 특별히 작동합니다.
unset($object[$key])
최신 정보
Fatal error: Cannot use object of type Object as array
@CXJ에서 언급 한대로 최신 버전의 PHP에서 치명적인 오류가 발생 합니다. 이 경우 대괄호를 대신 사용할 수 있습니다
unset($object{$key})
답변
객체를 반복하는 경우에도 작동합니다.
unset($object->$key);
대괄호를 사용할 필요가 없습니다.