>  기사  >  백엔드 개발  >  PHP의 이벤트 메커니즘 정의 및 구현

PHP의 이벤트 메커니즘 정의 및 구현

墨辰丷
墨辰丷원래의
2018-06-08 17:28:331384검색

이 글은 주로 PHP의 이벤트 메커니즘의 정의와 구현을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

이 문서의 예제에서는 다음과 같이 PHP에서 이벤트 메커니즘을 구현하는 방법을 설명합니다.

<?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);
  }
 }
}

요약: 위는 이 문서의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다.

관련 권장 사항:

jQuery 기반으로 PHP 및 mysql을 통해 등급 기능 구현

PHP 변수, 배열, 정규식 및 템플릿 적용

PHP에서 중국어 병음의 첫 글자 가져오기 프로그램 방식

위 내용은 PHP의 이벤트 메커니즘 정의 및 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.