assName(); $classObj->$funcName(); } } 在这里假设有这么一个类,主要是用于给你展现这个类实际上发生了什么事情。假设那个controlPaths方法是应用中全局切入点,访问应用中的每个方法都需要通过这个方法访问。上面的方法中在执行每个方法之前,我们调用了通知checkAuthentication()。——这就是前通知。返回后通知这个通知在指定功能执行完后只执行一次,并且返回那个访问点。考虑下面的代码:<?php class PathController { function controlPaths($className, $funcName) { $classObj = new $className(); $classObj->$funcName(); Database::closeConnection(); } } 注意这里,当方法完成之后,我们清理了数据库资源。在返回通知之后,我们调用这个通知。抛出后通知如果在执行进程期间函数抛出异常,那么在抛出完异常之后应用通知。这里是抛出完异常之后,通知就变成错误提示。<?php class PathController { function controlPaths($className, $funcName) { try { $classObj = new $className(); $classObj->$funcName(); } catch (Exception $e) { Error::reportError(); } } } 周边通知第四种通知是周边通知,他是前通知和返回后通知的合并体。<?php class PathController { function controlPaths($className, $funcName) { Logger::startLog(); $classObj = new $className(); $classObj->$funcName(); Logger::endLog(); } } 原文链接:http://www.cnblogs.com/baochuan/archive/2012/08/22/2644529.html