<menu id="uuzns"><dd id="uuzns"></dd></menu>
  1. <big id="uuzns"></big>
    <mark id="uuzns"></mark>
      <meter id="uuzns"></meter>
    1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
      1. 辉煌电商SEO内测

        百度关键词优化三天上首页!同行都是朋友, ?#38431;?#19968;起互利共赢。谢绝一切非正规行业服务,?#34892;?#20197;下同行、团队、?#25945;?#21644;代理的支持:

        百度站长?#25945;āIP开发小组、SEO焦大老友、SEO每天一贴ZAC大哥、卢松松大哥、海瑶SEO兄弟、附子SEO兄弟、探索者SEO、帮站SEO好友、互点宝、超快排?#25945;?

        百亿互刷宝、下拉天下、SEO自学网、SEO研究?#34892;摹?#23567;明SEO、王德春SEO、马海祥博客、踏雪无痕挂机工作室、SEO云优化好友、云客网、杭州思亿欧、网赚吧、北京SEO韩非老弟

        需要了解以上同?#23454;?#30456;关信息,我们已经给你做好了搜索框,看右上角绿色那个,输入搜索即刻直达

        网站统计: 共有读稿:14437部 / 今日更新:篇 / 评论:19条 / 会员:75 名 / 阅读:1086083
        您好,请 【登陆】/【注册】
        软件内容页横幅广告
        您现在的位置:SEO?#25945;?/a> > PHP网站建设 >

        PHP实现事件机制实例分析

        2018.04.20

        浏览:

        【导语】如果您觉得本篇内容还不错,请点击文章下面的赞,然后分享给朋友哦!...

        PHP实现事件机制实例分析-破洛洛教学网...请看详情...

        seo

        seo

        本文实例讲述了PHP实现事件机制的方法。分享给大家供大家参考。具体分析如下:

        内置了事件机制的语言不多,php也没有提供这样的功能。事件(Event)?#23548;?#21333;了就是一个Observer模式,实现起?#26149;?#23481;易。但是有所不同的是,事件的监听者谁都可以加,但是只能由直接包含它的对象触发。这就有一点点难度了。php有一个debug_backtrace函数,可以得到当前的调用栈,由此可以?#19994;?#21028;断调用事件触发函数的对象是不是直接包含它的对象的办法。

        
        Observer的示意?#35745;? src=
        
        <?php
        /**
        * 事件
        *
        * @author xiezhenye <[email protected]>
        */
        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);
            }
          }
        }
        

        希望本文所述对大?#19994;膒hp程序设计有所帮助。

        0
        赞一个
        关键词:
        ☆?#19981;?#36825;篇文章吗?分享给你的好友吧!点击这里复制网址☆
        共有53人阅读,期待你的评论!评论
        请先登陆后才能发表评论哦!没账号?赶紧注册一个吧!
        最新评论
        热门标签
        回到顶部
        时时彩官方开奖

          <menu id="uuzns"><dd id="uuzns"></dd></menu>
        1. <big id="uuzns"></big>
          <mark id="uuzns"></mark>
            <meter id="uuzns"></meter>
          1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
              1. <menu id="uuzns"><dd id="uuzns"></dd></menu>
              2. <big id="uuzns"></big>
                <mark id="uuzns"></mark>
                  <meter id="uuzns"></meter>
                1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
                  1. 北京快中彩玩法介绍 2019双色球规律公式 万众瞩目(两码中特) 利盈娱乐城真人龙虎斗 体彩浙江20选518206期 足球指数网足球指数网首页足球指数网 体彩e球彩怎么看 北京时时彩开奖结果走势图 单数中打一肖 大红鹰水心高手坛一尾中特 任选9场的玩法 9188大乐透走势图 电子游戏的利弊辩论 泳坛夺金几点结束 21体彩p3字谜打印版