Cet article présente principalement la définition et la mise en œuvre du mécanisme d'événements PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
L'exemple de cet article décrit la méthode d'implémentation du mécanisme d'événements en PHP, comme suit :
<?php /** * 事件 */ class Event { private $callbacks = array(); private $holder; function __construct() { $bt = debug_backtrace(); if (count($bt) < 2) { $this->holder = null; return; } $this->holder = &$bt[1]['object']; } function attach() { $args = func_get_args(); switch (count($args)) { case 1: if (is_callable($args[0])) { $this->callbacks[]= $args[0]; return; } break; case 2: if (is_object($args[0]) && is_string($args[1])) { $this->callbacks[]= array(&$args[0], $args[1]); } return; default: return; } } function notify() { $bt = debug_backtrace(); if ($this->holder && ((count($bt) >= 2 && $bt[count($bt) - 1]['object'] !== $this->holder) || (count($bt) < 2))) { throw(new Exception('Notify can only be called in holder')); } foreach ($this->callbacks as $callback) { $args = func_get_args(); call_user_func_array($callback, $args); } } }
Résumé : Ce qui précède représente l'intégralité du contenu de cet article , j'espère que cela pourra être utile à tout le monde, l'apprentissage aide.
Recommandations associées :
Une fonction de notation est implémentée basée sur jQuery via PHP et mysql
Variables PHP , Application de tableaux, d'expressions régulières et de modèles
Comment obtenir la première lettre du pinyin chinois dans le programme php
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!