国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP實現事件機制的方法

2024-04-25 20:38:49
字體:
來源:轉載
供稿:網友

本文實例講述了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]['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);

}

}

}

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦屏县| 宜阳县| 盖州市| 福州市| 澎湖县| 辛集市| 团风县| 昌图县| 大荔县| 忻城县| 大化| 晋中市| 邳州市| 海阳市| 池州市| 贺州市| 桑植县| 红安县| 财经| 定西市| 南岸区| 伊川县| 靖边县| 于田县| 吉水县| 汉中市| 洛扎县| 兴隆县| 东港市| 莱西市| 万荣县| 基隆市| 鄂尔多斯市| 澳门| 牙克石市| 勐海县| 岢岚县| 北碚区| 黔西县| 呼玛县| 濮阳市|