构造函数(constructor method,也称为构造器)是类中的一种特殊函数,当使用 new 关键字实例化一个对象时,构造函数将会自动调用。

在 PHP3.0 和 PHP4.0 中,构造函数是一个与其所在类同名的函数。而在 PHP5 中,虽然也支持 PHP3.0 和 PHP4.0 中的用法,但是更推荐使用__construct作为类的构造函数,这样做的好处就是构造函数无需随着类名的改变而做出修改。在 PHP7.0 中废弃了 PHP3.0 和 PHP4.0 中的用法,构造函数必须使用__construct来定义。

构造函数就是当对象被创建时,类中被自动调用的第一个函数,并且一个类中只能存在一个构造函数。和普通函数类似构造函数也可以带有参数,如果构造函数有参数的话,那么在实例化也需要传入对应的参数,例如new Students($name, $age)。

创建构造函数的语法格式如下:

public function __construct(参数列表){

... ...

}

其中,参数列表是可选的,不需要时可以省略。

如果没有在代码中显式地声明构造函数,类中会默认存在一个没有参数列表并且内容为空的构造函数。如果显式地声明构造函数则类中的默认构造方法将不会存在。所以构造函数通常用来做一些准备工作,比如为某些参数赋值等。

注意:如果显式地声明构造函数,那么它的访问权限必须是 public,而且构造函数是在实例化时自动调用的,我们不需要手动调用。

【示例】创建一个类,并为其显示的创建构造函数,代码如下:

class Website{

public $name, $url, $title;

public function __construct($str1, $str2, $str3){

$this -> name = $str1;

$this -> url = $str2;

$this -> title = $str3;

$this -> demo();

}

public function demo(){

echo $this -> name.'
';

echo $this -> url.'
';

echo $this -> title.'
';

}

}

$object = new Website('C语言中文网','http://c.biancheng.net/php/','构造函数');

?>

运行结果如下:

C语言中文网

http://c.biancheng.net/php/

构造函数

代码中我们用到了 $this,它表示当前调用的对象,而且 $this 只能在类的方法中使用,更多关于 $this 的知识后面我们会详细介绍。

php静态构造函数,PHP __construct():构造函数/方法相关推荐

  1. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    https://www.cnblogs.com/ArtofDesign/p/3603986.html 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字 ...

  2. 默认构造函数的作用(“A”方法没有采用“0”个参数的重载

    构造函数主要用来初始化对象.它又分为静态(static)和实例(instance)构造函数两种类别.大家应该都了解如何来写类的构造函数,这里只说下默认构造函数的作用,以及在类中保留默认构造函数的重要性 ...

  3. C# 面向对象编程 1 面向对象类,静态和非静态的区别,构造函数,new关键字 ,析构函数

    C# 面向对象编程 1 文章目录 C# 面向对象编程 1 1.面向过程-----> 面向对象 2.类 3.静态和非静态的区别 4.构造函数 5.new关键字 6. 析构函数 1.面向过程---- ...

  4. php的封装construct构造方法,__construct() 构造函数

    1.构造函数实例化类的时候会自动调用, 2.子类没有构造函数,会直接调用父类的构造涵数, 继承父类的属性和方法 3.子类和父类都有构造函数,实例子类时不会自动调用父类构造函数,只会调用子类自己的构造函 ...

  5. Ninject依赖注入——构造函数、属性、方法和字段的注入(三)

    1.Ninject简介 Ninject是基于.Net平台的依赖注入框架,它能够将应用程序分离成一个个高内聚.低耦合(loosely-coupled, highly-cohesive)的模块,然后以一种 ...

  6. 总结 构造函数与非构造函数 原型继承的一个方法

    这两天真的一直在看原型以及继承之间的千丝万缕,哇,收获颇多,不过所谓温故知新,还是要多复习复习知识点,才能察觉那些之前不易发现的小小sparkle 真心推荐MDN文档--对象原型,JavaScript ...

  7. 静态代码块、非静态代码块、构造函数执行顺序

    静态代码块.非静态代码块.构造函数执行顺序 /*** 类的实例化顺序,静态代码块.非静态代码块.构造函数.* @author MING*/ class Person {static String na ...

  8. JavaScript创建对象的三种方式之利用构造函数创建对象及使用方法(3)

    (1.)我们为什么需要构造函数: 因为前面两种创建对象的方式一次只能创建一个对象. (2.)什么是构造函数: 构造函数:就是把我们对象里面的一些相同的属性和方法抽象出来封装到函数里面 (3.)利用构造 ...

  9. 静态代码块、非静态代码块、构造函数三者执行顺序

    主要探讨一下关于静态代码块,非静态代码块,构造函数的执行顺序. 如有错误,欢迎指出. 首先: 静态成员变量和静态代码块的优先级是一样的,先定义的先执行. 在创建一个对象的时候会执行非静态代码块和构造函 ...

  10. java构造方法函数_Java中的构造方法(构造函数)与普通方法区别

    ** Java中的构造办法(构造函数)与通俗办法差别 ** 一.明白什么是构造办法,什么是通俗办法? 所谓的构造办法,是一种特别的办法,其感化是用来创建对象时初始化对象,即为对象成员变量赋初始值,老是 ...

最新文章

  1. 问题 B: 分组统计
  2. 【struts2+hibernate+spring项目实战】ajax+jquery报表数据显示(ssh)
  3. 腾讯扩招3000人,产品硬核技能被曝光,看完我跪了!
  4. DCMTK:比较DICOM图像并计算差异指标
  5. KNN算法与Kd树(转载+代码详细解释)
  6. cad转shp格式带属性_Excel、Word、PPT、CAD办公格式怎么转?方法汇总,可批量
  7. 微课|玩转Python轻松过二级(3.4节):集合操作与应用
  8. Hive单用户模式搭建
  9. Windows 7 一年试用批处理
  10. 什么是透明、匿名、高匿代理?详解!
  11. Android开发技术框架和编码规范
  12. 洛谷 P1007独木桥 C语言
  13. ETest半实物仿真测试在汽车电子电器系统中的应用
  14. 如何精确度量 iOS App 的启动时间
  15. 唱歌如何保持高位置_什么是高位置发声?
  16. 孩子每天吃多少鸡蛋比较合理?
  17. Codeforces - Delivery Club
  18. Web中的EasyExcel导出Excel(不创建对象且自定义合并单元格策略)
  19. 使用lex---01
  20. 清华大咖~分享终于有人把云计算、大数据和人工智能讲明白了

热门文章

  1. 蓝牙运动耳机哪个好,比较好的运动蓝牙耳机
  2. 灵动微电子MM32L0130系列MCU具有出色的低功耗表现
  3. 【深度】小红书的变法方法,分别怎么操作
  4. centos7.4安装zabbix3.4
  5. DeepMind巨亏42亿、独角兽惨遭3折贱卖,AI公司为何难有“好下场”?
  6. IDEA 乱码文件解决
  7. 极验验证码(6.0.9)破解(二) 之 反混淆
  8. 邮件的服务器的端口号,常用应用端口号及邮件协议简介
  9. 如何使用云片API发送短信验证码
  10. excel排名次函数