Maison  >  Article  >  développement back-end  >  Comment utiliser les fonctions magiques et les constantes magiques de PHP

Comment utiliser les fonctions magiques et les constantes magiques de PHP

墨辰丷
墨辰丷original
2018-05-19 09:53:451898parcourir

Cet article présente principalement les connaissances pertinentes sur les fonctions magiques php et les constantes magiques. Les amis qui en ont besoin peuvent se référer aux

Fonctions magiques php

1. __construct()

est appelé lors de l'instanciation d'un objet
Lorsque __construct et une fonction avec le nom de classe et le nom de fonction existent en même temps, __construct sera appelé et l'autre ne sera pas appelée.

2. __destruct()
Appelé lorsqu'un objet est supprimé ou que l'opération sur l'objet se termine.

3. __call()
L'objet appelle une certaine méthode
Si la méthode existe, elle sera appelée directement
Si elle n'existe pas, la fonction __call sera appelée.

4. __get()
Lors de la lecture des attributs d'un objet,
Si l'attribut existe, la valeur de l'attribut sera renvoyée directement
S'il n'existe pas, la fonction __get sera appelée ;

5. __set()
Lors de la définition des attributs d'un objet,
Si l'attribut existe, la valeur sera attribuée directement
S'il n'existe pas, la fonction __set sera appelée ;

6. __toString()
Appelé lors de l'impression d'un objet. Comme echo $obj; ou print $obj;

7. __clone()
Appelé lors du clonage d'un objet. Par exemple : $t=new Test();$t1=clone $t;

8. __sleep()
est appelé avant la sérialisation. Si l'objet est relativement volumineux et que vous souhaitez supprimer quelques éléments avant de le sérialiser, vous pouvez envisager cette fonction.

9. __wakeup()
est appelé lors de la désérialisation et effectue un travail d'initialisation de l'objet.

10. __isset()
Appelé lors de la vérification si les attributs d'un objet existent. Par exemple : isset($c->nom).

11. __unset()
Appelé lors de la suppression d'une propriété d'un objet. Par exemple : unset($c->name).

12. __set_state()
Appelé lorsque var_export est appelé. Utilisez la valeur de retour de __set_state comme valeur de retour de var_export.

13. __autoload()
Lors de l'instanciation d'un objet, si la classe correspondante n'existe pas, cette méthode est appelée.

Constantes magiques php

1. __LINE__
Renvoie le numéro de ligne actuel dans le fichier.

2. __FILE__
Renvoie le chemin complet et le nom du fichier. S'il est utilisé dans un fichier d'inclusion, renvoie le nom du fichier d'inclusion. Depuis PHP 4.0.2, __FILE__ contient toujours un chemin absolu, alors que les versions antérieures contenaient parfois un chemin relatif.

3. __FUNCTION__
Renvoie le nom de la fonction (nouveau en PHP 4.3.0). Depuis PHP 5, cette constante renvoie le nom de la fonction tel qu'il a été défini (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule.

4. __CLASS__
Renvoie le nom de la classe (nouveau en PHP 4.3.0). Depuis PHP 5, cette constante renvoie le nom de la classe lors de sa définition (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule.

5. __METHOD__
Renvoie le nom de la méthode de la classe (récemment ajouté dans PHP 5.0.0). Renvoie le nom de la méthode telle qu'elle a été définie (sensible à la casse).

(1) Première introduction aux méthodes magiques
Php5.0 nous a fourni de nombreuses fonctionnalités orientées objet depuis sa sortie, notamment de nombreuses méthodes magiques faciles à utiliser qui nous permettent de simplifier notre codage et mieux concevoir nos systèmes. Aujourd'hui, nous allons découvrir les méthodes magiques fournies par php5.0.

Comparaison de php utilisant des fonctions magiques et n'utilisant pas de fonctions magiques

/**
* use magic 0.31868386268616s
* not use magic 0.11876797676086s
*/
class Test {
  private $varstr = "123";

  function __get($name) {
    return $this->varstr;
  }
}

function microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

$i = 0;
while ($i<100000) {
  $i++;
  $t = new Test();
  $t->varstr;
}

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";

Recommandations associées :

Explication détailléeConstantes PHP : La différence entre définir et const

Explication détaillée des constantes PHP et des instances de type de données

Explication détaillée de la différence entre les constantes PHP définies et const

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!

Déclaration:
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