Maison > développement back-end > tutoriel php > Explication détaillée de l'utilisation des fonctions magiques et des constantes magiques en php

Explication détaillée de l'utilisation des fonctions magiques et des constantes magiques en php

黄舟
Libérer: 2023-03-14 12:40:01
original
1289 Les gens l'ont consulté

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
Depuis la sortie de Php5.0, il nous a fourni de nombreuses fonctionnalités orientées objet, 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";
Copier après la connexion

Il est recommandé d'utiliser les fonctions magiques PHP comme le moins possible

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:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal