构造函数(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 的知识后面我们会详细介绍。

python construct_PHP __construct():构造函数/方法相关推荐

  1. php基础(25)_构造函数(方法)

    当一个类实例化一个对象时,可能会随着对象初始化一些成员变量,如果赋初值比较多,写起来就比较麻烦,为此,php引入了魔术方法中的构造函数(方法)__construct,构造函数(方法)是生成对象时自动执 ...

  2. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...

  3. python中的构造函数和构造函数和析构函数的作用

    构造函数和构造函数和析构函数都属于python中的特殊方法 其中的"__del__"就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调 ...

  4. python系统提供构造函数传入参数_python类变量与构造函数的使用

    类变量:可在类的所有实例之间共享的变量 实例类对象:类的实例是调用类对象来创建的.如:par = Parent(),par就是类Parent的一个实例类对象. 实例变量(成员变量):同一个类对象可以创 ...

  5. python描述符魔术方法_Python类型转换的魔术方法详解

    本文讨论python中将某个复杂对象转换为简单对象或数据类型的常用魔术放啊,这些在编程中是十分有用的. 1.__str__方法. 在讲解本方法前我们先打开一个jupyter notebook,随意创建 ...

  6. python方法_详细解读Python中的__init__()方法

    __init__()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是__init__()参数值可以有多种形式. 因为有很多 ...

  7. python用类名直接调用方法_一文读全 Python 的面向对象编程方法

    背景介绍: Python 支持三种形式的编程,分别是:"命令式"."函数式"和"面向对象式". 很多优秀的开源 Python 项目里都用到了 ...

  8. Python学习之魔法方法

    什么是魔法方法? 在Python中,有的方法的前后被双下划线所包围,这就是魔法方法,这些方法会在特殊的情况下被调用,而不用显示调用. 其中,Python中最常见的魔法方法便是构造方法_init_,同样 ...

  9. python调用java的方法

    最近自己开发的一套测试平台,因为上游系统经常修改主数据,导致其中一个功能经常失败,要频繁找上游测试帮忙修改数据. 基于此种原因,对于这种过于依赖上游系统的接口,决定放弃直接调上游系统的http请求下发 ...

最新文章

  1. 在leangoo里怎么设置看板周期,过滤看板数据?
  2. linux C非阻塞延时,linux 非阻塞式socket编程求助。。
  3. Caffe学习系列(3):视觉层(Vision Layers)及参数
  4. 2016年蓝桥杯省赛题解
  5. Google Chrome —— 使用 PowerShell 命令安装 Google Chrome 浏览器
  6. 彻底完全卸载 SQL Server 2005 的图文教程
  7. docker-compose命令介绍和使用【官方英文文档翻译】【附加案例】
  8. jQuery:无限循环两个或者多个事件 click / toggle between two functions
  9. c#winform演练 ktv项目 点击歌单行 可以播放对应的歌曲
  10. 中值滤波时K = filter2(fspecial('average',3),img)/255,原因
  11. E_FAIL (0x80004005) MachineWrap
  12. memcache 客户端性能对比试验
  13. Android eclipse sdk包升级
  14. 最大连续子数组和 动态规划_53. 最大子序和(动态规划)
  15. 功能机用上下键实现MoveEvent
  16. 【Unity项目实战】手把手教学:飞翔的小鸟(3)动画制作
  17. 文化袁探索专栏——消息分发机制
  18. 在腾讯云搭建代理服务器的全部过程
  19. ftp服务器型号,ftp服务器的类型及其特点
  20. nlp, ml, 学习书单

热门文章

  1. 使用seaborn制图(小提琴图)
  2. python colorama_Python colorama 模块 使用 说明
  3. 怎样跳槽对自己的职场发展有帮助?
  4. 非科班出身,工作 10 年,我从 2800 到如今年薪 200 万
  5. Linux逆向教程好少,11个很少有人知道但很有用的Linux命令
  6. c语言中10 1是什么意思,维生素c1十是什么意思
  7. ArcGIS Pro地理空间数据处理完整工作流实训及python技术融合
  8. kettle通过命令行参数传递数据库连接信息
  9. 苏州迅芯微电子 招聘FPGA开发工程师
  10. 元宇宙应用价值体现在哪些领域?