반응형
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])
갱신하다
PHP의 새 버전은 치명적인 오류를 발생시킵니다.Fatal error: Cannot use object of type Object as array
@CXJ에서 설명한 바와 같이 이 경우 괄호를 대신 사용할 수 있습니다.
unset($object->{$key})
이것은 오브젝트 위를 루프하는 경우에도 기능합니다.
unset($object->$key);
괄호는 사용할 필요가 없습니다.
이 코드는 루프에서 잘 작동합니다.
$remove = array(
"market_value",
"sector_id"
);
foreach($remove as $key){
unset($obj_name->$key);
}
요소를 null로 설정합니다. 요소의 값을 null로 설정합니다. 요소가 여전히 존재합니다.
unset element는 어레이, stdClass 객체 사용자 정의 클래스 및 모든 변수에 대해 작동하는 요소를 제거하는 것을 의미합니다.
<?php
$a = new stdClass();
$a->one = 1;
$a->two = 2;
var_export($a);
unset($a->one);
var_export($a);
class myClass
{
public $one = 1;
public $two = 2;
}
$instance = new myClass();
var_export($instance);
unset($instance->one);
var_export($instance);
$anyvariable = 'anyValue';
var_export($anyvariable);
unset($anyvariable);
var_export($anyvariable);
언급URL : https://stackoverflow.com/questions/3600750/is-it-possible-to-delete-an-objects-property-in-php
반응형
'source' 카테고리의 다른 글
Vue.js - 요소 UI - 폼 검증 regexp (0) | 2022.11.15 |
---|---|
판다의 다른 컬럼을 기준으로 컬럼 값 추출 (0) | 2022.11.15 |
JavaScript를 사용하여 요소에서 CSS 클래스를 삭제합니다(jQuery 없음). (0) | 2022.11.15 |
JavaScript: 클라이언트 측과 서버 측 검증 (0) | 2022.11.15 |
이름에 점(.)이 있는 경우 systemd 오류가 발생합니다.사용자/그룹 이름 또는 숫자 ID가 잘못되었습니다. (0) | 2022.11.15 |