thinkphp5.1控制器初始化函数initialize与构造函数__construct区别

构造函数中子类的构造方法会覆盖父类的构造方法,如果要继承父类的构造方法可以加入parent::__construct();

例子:

//另一种方法,使用构造函数初始化
    public function __construct(){
        //使用父类的构造函数,也就是调用Controller类的构造函数
       parent::__construct();
       if(session(‘username‘)==null){
          $this->error(‘请先登录‘,‘login/login‘);
       }
    }

initialize初始化,,子类的initialize会覆盖父类的,如果要继承父类的initialize方法可以跟构造函数一样,调用parent::initialize();

public function initialize(){        

       if(session(‘username‘)==null){
          $this->error(‘请先登录‘,‘login/login‘);
       }
    }

原文地址:https://www.cnblogs.com/jcydd/p/10577192.html

时间: 2024-09-30 20:41:03

thinkphp5.1控制器初始化函数initialize与构造函数__construct区别的相关文章

函数表达式和构造函数的区别

var a=function(config){ this.name=config; this.out = function(){ alert(1) } }a.name='hewenk';a.prototype.inner=function(){ alert(1)}var n=new a('1234');n.out();//1n.inner();//1console.log(n.name)//1234console.log(a.name);//空 函数表达式的自定义属性实例无法继承 functio

关于何时使用构造函数,何时使用初始化函数

选择的区别,就在于 构造函数,在构造的时候,完成了对象的相关基本属性. 初始化函数,就是在构造了之后,还可以进行其他主要参数的设定. 构造函数,生成对象的时候,只能发生一次 初始化函数,原则上可以发生很多次. 举个例子,一个人,生下来,就是构造函数起了作用,比如是男是女 初始化函数好比在户口信息没有了,没有办法,到公安局重新办了一个.原则上这个是可以多次办的,只要人没有死.虽然政策不允许. 好了下面讲讲关于,bean,dbTable,db的构造函数和初始化函数的使用. 他们的关系是 db->db

iOS: 聊聊 Designated Initializer(指定初始化函数)

iOS: 聊聊 Designated Initializer(指定初始化函数) 一.iOS的对象创建和初始化 iOS 中对象创建是分两步完成: 分配内存 初始化对象的成员变量 我们最熟悉的创建NSObject对象的过程: 苹果官方有一副图片更生动的描述了这个过程: 对象的初始化是一个很重要的过程,通常在初始化的时候我们会支持成员变量的初始状态,创建关联的对象等.例如对于如下对象: 1 @interface ViewController : UIViewController 2 3 @end 4

C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针

 目  录 1       开始学习C++.............................................................................................................. 4 1.1       C++的头文件.................................................................................................

C++ 初始化形式、变量初始化规则、类构造函数的初始化列表

类构造函数的初始化列表,举例 一个对象的构造分两部分,首先是分配空间,然后初始化. 只要有对象生成,不管是以什么形式生成,都会调用构造函数进行初始化. 然后下面有个例子,在蓝色区域Big类的复制构造函数中,使用初始化列表进行成员的初始化(方法1)没有问题,而如果不使用初始化列表.直接在函数里用里面注释掉的代码(方法2)则会报错:Base类没有合适的构造函数. // W3-课程作业2-4.cpp : Defines the entry point for the console applicati

条款十二: 尽量使用初始化而不要在构造函数里赋值

看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来. template<class t> class namedptr { public: namedptr(const string& initname, t *initptr); ... private: string name; t *ptr; }; 在写namedptr构造函数时,必须将参数值传给相应的数据成员.有两种方法来实现.第一种方法是使用成员初始化列表: template<class t>

《扩展和嵌入python解释器》1.4 模块方法表和初始化函数

<扩展和嵌入python解释器>1.4 模块方法表和初始化函数 1.4 模块方法表和初始化函数 下面,我演示如何从Python程序调用spam_system().首先,我们需要在’方法表’列出名称和地址: [cpp] view plaincopy static PyMethodDef SpamMethods[] = { ... {"system",  spam_system, METH_VARARGS, "Execute a shell command."

Objective-C学习- 便利初始化函数和便利构造器

在面向对象的语言中,Objective-C的 便利初始化函数 可以理解为 如 Java,C++ 中的含参数的构造函数,但又有些不同... 例如,用Student类为例 首先是Student.h文件 #import <Foundation/Foundation.h> @interface Student : NSObject //定义属性 @property NSString *studentName; //学生姓名 @property int age; //学生年龄 //含姓名参数和年龄参数的

C++赋值函数与拷贝构造函数应注意的问题

<pre name="code" class="cpp"><pre name="code" class="cpp">#include "stdafx.h" #include <iostream> using namespace std; class Base { public: Base(int i):num(i) {} Base(const Base& obj)