文档章节

thinkphp _initialize 和 __construct函数的关系

big_cat
 big_cat
发布于 2016/01/26 19:55
字数 300
阅读 188
收藏 1

thinkphp 框架的 _initialize() 函数 和 php 原生的 __construct() 构造函数并没有什么本质上的区别,你完全可以把 _initialize() 作为 __construct() 的别名函数来用,但当你有编写 __construct() 构造函数时 _initialize() 函数就会无效化

php 的 __construct() 函数会被子类继承, 且被子类隐式调用

<?php
class Obj {
    public function __construct() {
        echo __METHOD__ . "<br>";
    }
}

class Person extends Obj {
    public function __construct() {
        // 调用父类构造函数
        parent::__construct();
        echo __METHOD__ . "<br>";
    }
}

$person = new Person();
?>

当子类中无 __construct() 构造函数的定义时则执行父类的构造函数

当子类中定义了(可以理解为重写)__construct() 则执行子类自身的构造函数,但可以通过 parent::__construct() 调用父类的构造函数

thinkphp 的 _initialize() 函数有着同样的机理

1、当父类中存在 _initialize() 时会被子类继承 且在子类被实例化时运行

2、当子类中存在 _initialize() 时父类的 _initialize() 不会自动运行,如果需要可使用 parent::_initialize()调用

所以 __construct() 和  _initilize() 你可以二者选其一,当然如果你写了 __construct() 时本类的 _initialize() 就会失效了

© 著作权归作者所有

共有 人打赏支持
big_cat
粉丝 46
博文 227
码字总数 152058
作品 0
长宁
后端工程师
私信 提问
php 部署错误, 提示为数据库表的问题

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'thinkphp.think_config' doesn't exist 错误位置 FILE: /var/www/html/ThinkPHP/Library/Think/Db/Driver.class.php  LINE: 1......

一一无念
2016/01/05
931
3
急求:linux服务器上xampp环境下使用thinkphp3.2.3连接不到mysql

大神过来看一下哈,我本地用的是window xp系统,wampserver的环境,thinkphp框架,编写的一个小网站,上传到linux服务器上面,就打不开了,会出现如下的错误: :( SQLSTATE[HY000] [2002] Co...

kuangkuang1
2015/11/14
3.5K
10
thinkphp 3.2.3 无法加载数据库驱动: Think\Db\Driver\

PHP里开启了PDO,数据库配置如下: //数据库连接参数 'DB_HOST'=>'127.0.0.1', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_NAME'=>'stbc', 'DB_PREFIX'=>'', 'DB_DEBUG'=>TRUE, 错误位置...

smile1smile
2015/03/17
19.7K
2
php开发笔记-windows-linux-thinkphp开发环境搭建

文章来自我的博客:https://www.lwxshow.com/dev/php/thinkphp-configuration-environment.html 使用最新版本的3.1.3版本 php开发笔记-windows-thinkphp开发环境搭建 1.下载ThinkPHP框架 http...

卢卫湘
2013/06/09
0
0
thinkphp使用Ueditor编辑器写入数据库单双引号转义问题

http://www.poluoluo.com/jzxy/201208/172927.html thinkphp使用Ueditor编辑器写入数据库单双引号转义问题 Posted by 萧猫on 十二月 18, 2013 开发备忘/语录 在ThinkPHP中提交表单插入数据的...

KavenSu
2014/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
今天
3
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
3
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
3
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
3
0
小程序设置垂直居中,水平居中

如果子容器中的view需要居中的话,那需要在父容器中设置居中 水平居中: display: flex; flex-direction: column; align-items: center; 垂直居中 display: flex;align-items: cen...

淘幻幻
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部