PHP 中的构造函数

John Wachira 2023年1月30日
  1. 使用 PHP 构造函数初始化类中的对象的属性
  2. 使用 PHP 构造函数在类中初始化 Object with Parameters 的属性
  3. 在 PHP 中在子类中启动一个对象并在两个类都有 Individual 构造函数时调用父类构造函数
PHP 中的构造函数

在本教程中,我们将介绍 PHP 构造函数。我们将看到如何使用 __construct() 函数来初始化类中实例的属性。

我们还将使用该函数来初始化类中具有给定参数的对象的属性。

最后,我们将看到如何在子类中启动对象并在两个类都有单独的构造函数时调用父类构造函数。

使用 PHP 构造函数初始化类中的对象的属性

在下面的示例中,我们将创建一个类 Student 并使用 __construct 函数为 new Student 分配其属性。

__construct 函数减少了与使用函数 set_name() 相关的代码数量。

<?php

class Student {
	// Define the attributes of your class
	
	public $name;
	public $email;
// Initialize the properties of the object you want to create in this class

function __construct($name, $email) {
	$this->name = $name;
	$this->email = $email;
}

function get_name() {
	return $this->name;
}

function get_email() {
	return $this->email;
}
}
$obj = new Student("John", "john567@gmail.com");
echo $obj->get_name();
echo "<br>";
echo $obj->get_email();
?>

输出:

John
john567@gmail.com

使用 PHP 构造函数在类中初始化 Object with Parameters 的属性

在下面的示例代码中,我们创建类 Military 并使用 __construct 函数来提供我们创建的对象的属性和参数。

<?php
class Military {
	// Define the attributes of the class 'Military'
	
	public $name;
	public $rank;
	
	function __construct($name, $rank){
		$this->name = $name;
		$this->rank = $rank;
	}
	function show_detail() {
		echo $this->name." : ";
		echo "Your Rank is ".$this->rank."\n";
	}
}
$person_obj = new Military("Michael", "General");
$person_obj->show_detail();
echo "<br>";
$person2 = new Military("Fred", "Commander");
$person2->show_detail();
?>

输出:

Michael : Your Rank is General
Fred : Your Rank is Commander

在 PHP 中在子类中启动一个对象并在两个类都有 Individual 构造函数时调用父类构造函数

<?php
class Student
{
	public $name;
	public function __construct($name)
	{
		$this->name = $name;
	}
}class Identity extends Student
{
	public $identity_id;
	
	public function __construct($name, $identity_id)
	{
		parent::__construct($name);
		$this->identity_id = $identity_id;
	}
	function show_detail() {
		echo $this->name." : ";
		echo "Your Id Number is ".$this->identity_id."\n";
	}
}
$obj = new Identity('Alice', '1036398');
echo $obj->show_detail();
?>

输出:

Alice : Your Id Number is 1036398

Identity 类扩展了上述代码中的 Student 类。我们使用关键字 parent: 来调用 Student 类的构造函数。

作者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn