Se desideri annullare l'impostazione di una variabile, puoi semplicemente usare unset
unset($any_variable);
Verificare la sua esistenza non ha alcun vantaggio quando si tenta di annullare l'impostazione di una variabile.
Se la variabile è un array e desideri annullare l'impostazione di un elemento, devi prima assicurarti che il genitore esista, questo vale anche per le proprietà dell'oggetto.
unset($undefined_array['undefined_element_key']);
unset($undefined_object->undefined_prop_name);
Questo è facilmente risolvibile avvolgendo il unsetin un if(isset($var)){ ... }blocco.
if(isset($undefined_array)){
unset($undefined_array['undefined_element_key']);
}
if(isset($undefined_object)){
unset($undefined_object->undefined_prop_name);
}
Il motivo per cui controlliamo solo la variabile ( genitore ) è semplicemente perché non abbiamo bisogno di controllare la proprietà / elemento e così facendo sarebbe molto più lento scrivere e calcolare in quanto aggiungerebbe un controllo extra.
if(isset($array)){
...
}
if(isset($object)){
...
}
.vs
$object->prop_name = null;
$array['element_key'] = null;
if(isset($array) && array_key_exists('element_key', $array)){
...
}
if(isset($object) && property_exists($object, 'prop_name')){
...
}
if(isset($array) && $array['element_key'])){
...
}
if(isset($object) && $object->prop_name)){
...
}
Questo è ovvio ma è anche fondamentale che tu conosca typela variabile della variabile quando ottieni, imposta e disattiva un elemento o una proprietà; l'utilizzo della sintassi sbagliata genererà un errore.
È lo stesso quando si tenta di annullare l'impostazione del valore di un array o di un oggetto multidimensionale. È necessario assicurarsi che la chiave / nome padre esista.
if(isset($variable['undefined_key'])){
unset($variable['undefined_key']['another_undefined_key']);
}
if(isset($variable->undefined_prop)){
unset($variable->undefined_prop->another_undefined_prop);
}
Quando si tratta di oggetti c'è un'altra cosa a cui pensare, e questa è la visibilità.
Solo perché esiste non significa che tu abbia il permesso di modificarlo.