Maison > développement back-end > tutoriel php > Exemples d'utilisation de méthodes magiques en PHP

Exemples d'utilisation de méthodes magiques en PHP

little bottle
Libérer: 2023-04-05 22:28:01
avant
2635 Les gens l'ont consulté

Dans cet article, l'éditeur donnera une brève description de l'utilisation des méthodes magiques en PHP avec le code ci-joint. Les amis intéressés peuvent y jeter un œil !

Qu'est-ce que la « méthode magique » ?

Méthodes commençant par deux traits de soulignement en PHP, __construct(), __destruct(), __call(), __callStatic(),__get(), __set(), __isset(), __unset ( ), __sleep (), __wakeup(), __toString(), __set_state,() __clone() __autoload(), etc., sont appelés « méthodes magiques ». Si vous souhaitez que PHP appelle ces méthodes magiques, elles doivent d'abord être définies dans la classe, sinon PHP n'exécutera pas les méthodes magiques non créées.

1.__get __set est appelé lors de l'attribution et de la lecture d'attributs inaccessibles

2.__sleep est appelé lors de la sérialisation d'objets

3.__wakeup est Call

lorsque désérialiser l'objet. 4. Lors de la sérialisation de l'objet, vous pouvez uniquement sérialiser les attributs spécifiés et réduire la taille après la sérialisation. Lorsque vous souhaitez stocker la chaîne de l'objet dans, par exemple, memcache , plus utile

5. Par exemple, dans l'exemple suivant, j'ai uniquement sérialisé l'attribut data et je l'ai restreint dans la fonction __sleep


<?php
class Test{
	public $name;
	protected $data=array();
	public function __set($name,$value){
		$this->data[$name]=$value;
	}
	public function __get($name){
		if(!isset($this->data[$name])){
			return "";
		}
		return $this->data[$name];
	}
	public function __sleep(){
		echo "sleep...\r\n";
		return array(&#39;data&#39;);
	}
	public function __wakeup(){
		echo "wakeup...\r\n";
	}
}
$test=new Test();
$test->name="我不会被序列化进去";
$test->bbbb="taoshihan";
$testObjectStr=serialize($test);
var_dump($testObjectStr);
var_dump(unserialize($testObjectStr));
Copier après la connexion

Tutoriels associés : Un ensemble complet de tutoriels vidéo sur la programmation PHP de l'entrée au master

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal