php中实现事件模式

https://yq.aliyun.com/ziliao/162660

<?php

class Event{

    private $events = [];

    public function listen($name, $callback){
if(!key_exists($name, $this->events))
$this->events[$name] = $callback;
} public function trigger($name){
if(key_exists($name, $this->events)){
call_user_func($name);
}
} } $eventManager = new Event();
function go(){
echo "go event happen!";
}
$eventManager->listen('go', 'go');
//$eventManager->trigger('go');
var_dump(get_defined_functions());

  

------------------------------------------------------

D:\wnmp\www\vidagrid_iot\app\webroot\event.php:27:

array (size=2)
'internal' =>
array (size=1355)
0 =>

string

 'zend_version' (length=12)
1 =>

string

 'func_num_args' (length=13)
2 =>

string

 'func_get_arg' (length=12)
3 =>

string

 'func_get_args' (length=13)
4 =>

string

 'strlen' (length=6)
5 =>

string

 'strcmp' (length=6)
6 =>

string

 'strncmp' (length=7)
7 =>

string

 'strcasecmp' (length=10)
8 =>

string

 'strncasecmp' (length=11)
9 =>

string

 'each' (length=4)
10 =>

string

 'error_reporting' (length=15)
11 =>

string

 'define' (length=6)
12 =>

string

 'defined' (length=7)
13 =>

string

 'get_class' (length=9)
14 =>

string

 'get_called_class' (length=16)
15 =>

string

 'get_parent_class' (length=16)
16 =>

string

 'method_exists' (length=13)
17 =>

string

 'property_exists' (length=15)
18 =>

string

 'class_exists' (length=12)
19 =>

string

 'interface_exists' (length=16)
20 =>

string

 'trait_exists' (length=12)
21 =>

string

 'function_exists' (length=15)
22 =>

string

 'class_alias' (length=11)
23 =>

string

 'get_included_files' (length=18)
24 =>

string

 'get_required_files' (length=18)
25 =>

string

 'is_subclass_of' (length=14)
26 =>

string

 'is_a' (length=4)
27 =>

string

 'get_class_vars' (length=14)
28 =>

string

 'get_object_vars' (length=15)
29 =>

string

 'get_class_methods' (length=17)
30 =>

string

 'trigger_error' (length=13)
31 =>

string

 'user_error' (length=10)
32 =>

string

 'set_error_handler' (length=17)
33 =>

string

 'restore_error_handler' (length=21)
34 =>

string

 'set_exception_handler' (length=21)
35 =>

string

 'restore_exception_handler' (length=25)
36 =>

string

 'get_declared_classes' (length=20)
37 =>

string

 'get_declared_traits' (length=19)
38 =>

string

 'get_declared_interfaces' (length=23)
39 =>

string

 'get_defined_functions' (length=21)
40 =>

string

 'get_defined_vars' (length=16)
41 =>

string

 'create_function' (length=15)
42 =>

string

 'get_resource_type' (length=17)
43 =>

string

 'get_loaded_extensions' (length=21)
44 =>

string

 'extension_loaded' (length=16)
45 =>

string

 'get_extension_funcs' (length=19)
46 =>

string

 'get_defined_constants' (length=21)
47 =>

string

 'debug_backtrace' (length=15)
48 =>

string

 'debug_print_backtrace' (length=21)
49 =>

string

 'gc_collect_cycles' (length=17)
50 =>

string

 'gc_enabled' (length=10)
51 =>

string

 'gc_enable' (length=9)
52 =>

string

 'gc_disable' (length=10)
53 =>

string

 'bcadd' (length=5)
54 =>

string

 'bcsub' (length=5)
55 =>

string

 'bcmul' (length=5)
56 =>

string

 'bcdiv' (length=5)
57 =>

string

 'bcmod' (length=5)
58 =>

string

 'bcpow' (length=5)
59 =>

string

 'bcsqrt' (length=6)
60 =>

string

 'bcscale' (length=7)
61 =>

string

 'bccomp' (length=6)
62 =>

string

 'bcpowmod' (length=8)
63 =>

string

 'jdtogregorian' (length=13)
64 =>

string

 'gregoriantojd' (length=13)
65 =>

string

 'jdtojulian' (length=10)
66 =>

string

 'juliantojd' (length=10)
67 =>

string

 'jdtojewish' (length=10)
68 =>

string

 'jewishtojd' (length=10)
69 =>

string

 'jdtofrench' (length=10)
70 =>

string

 'frenchtojd' (length=10)
71 =>

string

 'jddayofweek' (length=11)
72 =>

string

 'jdmonthname' (length=11)
73 =>

string

 'easter_date' (length=11)
74 =>

string

 'easter_days' (length=11)
75 =>

string

 'unixtojd' (length=8)
76 =>

string

 'jdtounix' (length=8)
77 =>

string

 'cal_to_jd' (length=9)
78 =>

string

 'cal_from_jd' (length=11)
79 =>

string

 'cal_days_in_month' (length=17)
80 =>

string

 'cal_info' (length=8)
81 =>

string

 'ctype_alnum' (length=11)
82 =>

string

 'ctype_alpha' (length=11)
83 =>

string

 'ctype_cntrl' (length=11)
84 =>

string

 'ctype_digit' (length=11)
85 =>

string

 'ctype_lower' (length=11)
86 =>

string

 'ctype_graph' (length=11)
87 =>

string

 'ctype_print' (length=11)
88 =>

string

 'ctype_punct' (length=11)
89 =>

string

 'ctype_space' (length=11)
90 =>

string

 'ctype_upper' (length=11)
91 =>

string

 'ctype_xdigit' (length=12)
92 =>

string

 'strtotime' (length=9)
93 =>

string

 'date' (length=4)
94 =>

string

 'idate' (length=5)
95 =>

string

 'gmdate' (length=6)
96 =>

string

 'mktime' (length=6)
97 =>

string

 'gmmktime' (length=8)
98 =>

string

 'checkdate' (length=9)
99 =>

string

 'strftime' (length=8)
100 =>

string

 'gmstrftime' (length=10)
101 =>

string

 'time' (length=4)
102 =>

string

 'localtime' (length=9)
103 =>

string

 'getdate' (length=7)
104 =>

string

 'date_create' (length=11)
105 =>

string

 'date_create_immutable' (length=21)
106 =>

string

 'date_create_from_format' (length=23)
107 =>

string

 'date_create_immutable_from_format' (length=33)
108 =>

string

 'date_parse' (length=10)
109 =>

string

 'date_parse_from_format' (length=22)
110 =>

string

 'date_get_last_errors' (length=20)
111 =>

string

 'date_format' (length=11)
112 =>

string

 'date_modify' (length=11)
113 =>

string

 'date_add' (length=8)
114 =>

string

 'date_sub' (length=8)
115 =>

string

 'date_timezone_get' (length=17)
116 =>

string

 'date_timezone_set' (length=17)
117 =>

string

 'date_offset_get' (length=15)
118 =>

string

 'date_diff' (length=9)
119 =>

string

 'date_time_set' (length=13)
120 =>

string

 'date_date_set' (length=13)
121 =>

string

 'date_isodate_set' (length=16)
122 =>

string

 'date_timestamp_set' (length=18)
123 =>

string

 'date_timestamp_get' (length=18)
124 =>

string

 'timezone_open' (length=13)
125 =>

string

 'timezone_name_get' (length=17)
126 =>

string

 'timezone_name_from_abbr' (length=23)
127 =>

string

 'timezone_offset_get' (length=19)

最新文章

  1. windows8 APP开发的远程调试
  2. 向已写好的多行插入sql语句中添加字段和值
  3. Codis集群的搭建与使用
  4. ios开发之C语言第一天
  5. compareTo简介
  6. jQuery组织您钞四----jQuery操作DOM
  7. 再谈加密-RSA非对称加密的理解和使用
  8. sublime text 调出结果输出框
  9. C++ 头文件系列 (algorithm)
  10. ZooKeeper 状态机
  11. python解决图的最短路径问题
  12. 学会使用box-sizing布局
  13. JACKSON详解
  14. CentOS7 安装 JDK
  15. HDU 4352 - XHXJ&#39;s LIS - [数位DP][LIS问题]
  16. 使用lua graphql 模块让openresty 支持graphql api
  17. http协议和https协议
  18. P2619 [国家集训队2]Tree I
  19. FFMS2 官方说明译文 [原创]
  20. gradle平级项目引用

热门文章

  1. PAT 1001 Format
  2. MongoDB 记录
  3. python开发_tkinter_菜单的不同选项
  4. Codeforces Round #360 (Div. 2) C. NP-Hard Problem 水题
  5. Git_配置别名
  6. div模拟selection标签 下拉列表
  7. 使用Django来处理对于静态文件的请求
  8. MyBatis接口的简单实现原理
  9. rac 10g 10.2.0.1升级到10.2.0.5具体解释
  10. WebView具体介绍