Cómo eliminar la propiedad si la propiedad tiene tipo.
unset() funciona si la propiedad no tiene tipo.
class A { public string $a; public $b; } $o = new A(); unset($o->a); unset($o->b); // object(A)#1 (0) { // ["a"]=> // uninitialized(string) // }De acuerdo con el RFC sobre propiedades tipadas :
Si una propiedad escrita está unset(), vuelve al estado no inicializado. Si bien nos encantaría eliminar la compatibilidad con la desactivación de propiedades, Doctrine utiliza actualmente esta funcionalidad para la inicialización diferida, en combinación con la funcionalidad descrita en la siguiente sección.