PHP 中的构造函数
短信预约 -IT技能 免费直播动态提醒
在本文中,我们将介绍 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
类的构造函数。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341