Definition und Implementierung des Ereignismechanismus in PHP

墨辰丷
Freigeben: 2023-03-30 22:24:02
Original
1358 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Definition und Implementierung des Ereignismechanismus in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

Das Beispiel dieses Artikels beschreibt die Methode zur Implementierung des Ereignismechanismus in PHP wie folgt:

<?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][&#39;object&#39;];
 }
 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][&#39;object&#39;] !== $this->holder)
    || (count($bt) < 2))) {
   throw(new Exception(&#39;Notify can only be called in holder&#39;));
  }
  foreach ($this->callbacks as $callback) {
   $args = func_get_args();
   call_user_func_array($callback, $args);
  }
 }
}
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, I Ich hoffe, es kann jedem beim Lernen helfen.

Verwandte Empfehlungen:

Eine Bewertungsfunktion wird basierend auf jQuery über PHP und MySQL

PHP-Variablen implementiert , Anwendung von Arrays, regulären Ausdrücken und Vorlagen

So erhalten Sie den ersten Buchstaben des chinesischen Pinyin in einem PHP-Programm

Das obige ist der detaillierte Inhalt vonDefinition und Implementierung des Ereignismechanismus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!