找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 134|回复: 0

[php] PHP魔术方法之 __construct(),类的构造函数详解

[复制链接] IP属地:广东省广州市
发表于 2023-4-18 00:14:40 | 显示全部楼层 |阅读模式
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。
__construct(),类的构造函数
php中构造方法是对象创建完成后第一个被对象自动调用的方法。在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。
1、 构造方法的作用
通常构造方法被用来执行一些有用的初始化任务,如对成员属性在创建对象时赋予初始值。
2、 构造方法的在类中的声明格式

  1. function __constrct([参数列表]){
  2.     方法体 //通常用来对成员属性进行初始化赋值
  3. }
复制代码
3、 在类中声明构造方法需要注意的事项
1、在同一个类中只能声明一个构造方法,原因是,PHP不支持构造函数重载。
2、构造方法名称是以两个下画线开始的__construct()
下面是它的例子:
  1. <?php
  2.     class Person
  3.     {                                                                     
  4.             public $name;        
  5.             public $age;        
  6.             public $sex;        
  7.                                                                   
  8.         /**
  9.          * 显示声明一个构造方法且带参数
  10.          */                                                                                      
  11.         public function __construct($name="", $sex="男", $age=22)
  12.         {      
  13.             $this->name = $name;
  14.             $this->sex = $sex;
  15.             $this->age = $age;
  16.         }
  17.          
  18.         /**
  19.          * say 方法
  20.          */
  21.         public function say()
  22.         {
  23.             echo "我叫:" . $this->name . ",性别:" . $this->sex . ",年龄:" . $this->age;
  24.         }
  25.     }
复制代码

创建对象$Person1且不带任参数
  1. $Person1 = new Person();
  2. echo $Person1->say(); //输出:我叫:,性别:男,年龄:27
复制代码

创建对象$Person2且带参数“小明”
  1. $Person2 = new Person("小明");
  2. echo $Person2->say(); //输出:我叫:张三,性别:男,年龄:27
复制代码

创建对象$Person3且带三个参数
  1. $Person3 = new Person("李四","男",25);
  2. echo $Person3->say(); //输出:我叫:李四,性别:男,年龄:25
复制代码
以上就是PHP魔术方法之 __construct(),类的构造函数详解

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|西兴社区 ( 蜀ICP备2022005627号 )|网站地图

GMT+8, 2024-12-27 13:04 , Processed in 0.681741 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表