您好,欢迎访问一九零五行业门户网

PHP设计模式之解释器模式

解释器: 解释器设计模式用于分析一个实体的关键元素,并且针对每个元素都提供自己的解释或相应的动作。
解释器设计模式最常用于php/html 模板系统。
_username = $username;           }          public function getprofilepage() {               $profile  = i like never again ! ;               $profile .= i love all of their songs. my favorite cd: 
;               $profile .= {{mycd.gettitle}}!!;                              return $profile;           }       }       class usercd {           public function setuser(user $user) {               $this->_user = $user;           }           public function gettitle() {               $title = waste of a rib;               return $title;           }       }       class usercdinterpreter {                      protected $_user = null;                      public function setuser(user $user) {               $this->_user = $user;           }                      public function getinterpreted() {               $profile = $this->_user->getprofilepage();                              if (preg_match_all('/\{\{mycd\.(.*?)\}\}/', $profile, $triggers, preg_set_order)) {                   $replacements = array();                                      foreach ($triggers as $trigger) {                       $replacements[] = $trigger[1];                   }                                      $replacements = array_unique($replacements);                                      $mycd = new usercd();                   $mycd->setuser($this->_user);                                      foreach ($replacements as $replacement) {                       $profile = str_replace({{mycd.{$replacement}}}, call_user_func(array($mycd, $replacement)), $profile);                   }               }                              return $profile;           }                  }       $username = aaron;       $user = new user($username);       $interpreter = new usercdinterpreter();       $interpreter->setuser($user);              print {$username}'s profile;       print $interpreter->getinterpreted();   ?> 
数据库脚本请参照:http://www.cxybl.com/html/wlbc/php/2011_1126_9458.html
其它类似信息

推荐信息