thinkPHP中初始化、前置后置操作

初始化操作:初始化就是访问控制器的任何方法之前都要执行的某个方法叫初始化操作。

代码如下:

namespace  Home\Controller; 
   use Think\Controller; 
   class IndexController extends Controller{ 
        // 初始化方法 
        public function _initialize(){ 
            echo 'initialize<br/ >'; 
        } 
        public function index(){ 
            echo 'index'; 
        } 

        public function hello(){ 
            echo 'hello'; 
        } 
  } 
如果我们访问   http://serverName/index.php/ Home/index 

结果会输出 

   initialize 
   index 

如果我们访问   http://serverName/index.php/ Home/ hello 

结果会输出 

   initialize 
   hello 

可以看出 ,无论是执行index操作还是hello操作 都会首先执行 _initialize 操作方法。 

如果把 _initialize 操作方法定义到一个公共的控制器类里的话 ,那么所有的控制器操作方法之前都会执行

前置后置操作:_initialize 方法是调用所有操作方法之前都会执行 ,前置和后缀操作则是针对某个特定的操作方法而言。 

如果当前访问的操作是存在 (必须是实际在控制器中定义过 )的 ,系统会检测当前操作是否具有前置和后置操作 ,如果存在就会按照顺序执行 ,前置和后置操作的方法名是在要执行的方法前。

代码如下:

namespace  Home\Controller; 
   use Think\Controller; 
   class IndexController extends Controller{ 
        //前置操作方法 
        public function _before_index(){ 
            echo 'before<br/ >'; 
        } 
        public function index(){ 
            echo 'index <br/ >'; 
        } 
        //后置操作方法 
        public function _after_index(){ 
            echo 'after'; 
        } 
  } 
如果我们访问   http://serverName/index.php 

结果会输出 

   before 
   index 
   after 

对于任何操作方法我们都可以按照这样的规则来定义前置和后置方法。 

如果在操作方法里使用了exit或者error方法的话 有可能不会再执行后置方法了 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值