ThinkPHP框架中的__construct和_initialize的使用

父类(PlatformController.class.php):

class PlatformController extends Controller{

    public function __construct(){
echo 'PlatformController' . "<br>"; //调用父类的构造函数
parent::__construct(); echo 'PlatformController第二次' . "<br>";
} protected function _initialize(){
echo 'PlatformController下的_initialize'."<br>";
}
}

子类():

class AdminController extends PlatformController{

    public function __construct(){
parent::__construct();
//子类需要的逻辑代码,如果不需要,则无需加载构造函数
//......
} public function test(){
echo 'AdminController'."<br>";
}
}

访问子类的test方法,输出结果:

PlatformController
PlatformController下的_initialize
PlatformController第二次
AdminController

结论:

(1)父类的__construct构造方法会自动调用_initialize方法。

(2)子类继承父类后,不需要写构造方法就会自动加载父类的构造函数。

(3)如果子类需要自己的构造函数,写parent::__construct(),才会加载父类构造方法,否则就不加载父类的构造方法。

ThinkPHP __construct和_initialize的使用的更多相关文章

  1. ThinkPHP实现登录限制时__construct和_initialize的区别

    ThinkPHP支持两种构造方法:  __construct和_initialize(ThinkPHP内置的构造方法). 测试URL为:  http://oa.com/index.php/Admin/ ...

  2. thinkphp中的_initialize方法

    子类的_initialize方法自动调用父类的_initialize方法.而php的构造函数construct,如果要调用父类的方法,必须在子类构造函数显示调用parent::__construct( ...

  3. tp3.2的__construct和_initialize方法

    在tp3.2框架里面,有一个php自带的__construct()构造函数和tp3自带的构造函数_initialize()的实行顺序是先实行 php自带的__construct()构造函数 再实行 t ...

  4. thinkPHP中_initialize方法实例分析

    子类的_initialize方法自动调用父类的_initialize方法. 而php的构造函数construct,如果要调用父类的方法,必须在子类构造函数显示调用parent::__construct ...

  5. ThinkPHP - 5 - 学习笔记(2015.4.15)

    ThinkPHP __construct()和__initialize() 1.__initialize()不是php类中的函数,php类的构造函数只有__construct().2.类的初始化:子类 ...

  6. Call to a member function assign() on null

    Thinkphp: 在子控制器里面写了一个构造函数,如下 //构造函数 public function __construct(){ echo 1; } 结果页面报错了  ---->  Call ...

  7. ThinkPHP中的__initialize()和类的构造函数__construct()

    ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对 ...

  8. 【TP3.2】详解_initialize() 和 __construct() 的区别和联系

    1.假设 一个AdminController.class.php 集成至 \Think\Controller 类, 我们来看看Controller.class.php的构造方法源码: /** * 架构 ...

  9. ThinkPHP之__construct()和__initialize()

    ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对 ...

随机推荐

  1. 【学习笔记】深入理解js原型和闭包(7)——原型的灵活性

    在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有 ...

  2. 使用laravel的Command实现搜索引擎索引和模板的建立

    创建command,初始化es 创建成功后,可通过php artisan 查看到 php artisan make:command ESInit 安装guzzle composer require g ...

  3. 诊断Java代码中常见的数据库性能热点问题应该这么做!

    “你的Java应用程序的性能是怎样诊断和优化的?不妨看看这两位西医的方子.如果你有更好疗效的药方,也欢迎在评论区告诉我们. 当我在帮助一些开发者或架构师分析及优化Java应用程序的性能时,关键往往不在 ...

  4. sqlserver:查询锁住sql以及解锁

    --查看被锁表:SELECT request_session_id spid, OBJECT_NAME( resource_associated_entity_id ) tableNameFROM s ...

  5. 关于maven source1.5报错

    是因为maven 默认是1.5编译的 <build>//加上这个配置,把编译给改掉试试 <pluginManagement> <plugins> <plugi ...

  6. 作为一个iOS Developer 为什么我不用Swift?

    1.开始 在去年这个时候接手了一个iOS项目,项目主用Swift语言进行开发,对于部分第三方Objective C开源库则使用bridge的方式进行调用 当时项目的规模大概是不超过15个页面,功能也比 ...

  7. vue点击时动态改变样式 ------- 最简单的方法

    vue点击时动态改变样式 template中 <li :class="{ active:index==isActive }" @click="changeValue ...

  8. selective_search_rcnn.m中代码

    im = imresize(im, [NaN im_width]):把图像转换为宽度为im_width,自动计算列数

  9. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146

    问题介绍:   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146 MySql语法错误, 但是错 ...

  10. tmp note

    cat file.txt > /dev/null 2>&1 丢弃错误和标准输出 systemctl isolate multi-user.target 切换回多用户命令行模式 sy ...