351 of 410 menu

Méthode __unset

La méthode __unset est l'une des méthodes magiques en PHP. Elle est automatiquement appelée lorsqu'on tente de supprimer une propriété inexistante ou inaccessible d'un objet en utilisant la fonction unset. La méthode accepte un paramètre - le nom de la propriété que l'on tente de supprimer.

Syntaxe

public function __unset(string $name): void

Exemple

Créons une classe avec la méthode magique __unset et essayons de supprimer une propriété inexistante :

<?php class MyClass { private $data = ['a' => 1, 'b' => 2]; public function __unset($name) { echo "Tentative de suppression de '$name'\n"; unset($this->data[$name]); } } $obj = new MyClass(); unset($obj->a); unset($obj->c); ?>

Résultat de l'exécution du code :

Tentative de suppression de 'a' Tentative de suppression de 'c'

Exemple

Utilisation de __unset pour contrôler l'accès aux propriétés privées :

<?php class User { private $email = 'user@example.com'; public function __unset($name) { if ($name === 'email') { throw new Exception("Impossible de supprimer la propriété privée 'email'"); } } } $user = new User(); unset($user->email); ?>

Résultat de l'exécution du code :

Exception: Impossible de supprimer la propriété privée 'email'

Voir aussi

  • la méthode __set,
    qui est appelée lors de l'écriture dans une propriété inaccessible
  • la méthode __get,
    qui est appelée lors de la lecture d'une propriété inaccessible
  • la méthode __isset,
    qui est appelée lors de la vérification de l'existence d'une propriété inaccessible
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser