[php] PHP에서 객체의 속성을 삭제할 수 있습니까?

내가 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);

대괄호를 사용할 필요가 없습니다.


답변