[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[初学者] 关于 PHP 构造函数

你好!
我是系统开发部的松木。
这次,我们将深入研究构造函数,它是面向对象编程语言的特征之一。

什么是构造函数?

构造函数是在类实例化(对象化)时始终执行的方法。 普通方法在使用箭头运算符实例化类后可以随时调用,但构造函数在实例化时会自动调用,因此没有调用过程。

・普通方法

$object = 新类名; $object->方法名();

・构造方法

$object = 新类名;

如何编写构造函数

构造方法写如下。

public function __construct() { // 处理内容 }

虽然一开始就写着“public”,但这是访问修饰符之一。

访问修饰符有public、protected、private,但是如果不设置为public,从外部调用类时,构造函数方法将不会被调用,所以基本都使用public访问修饰符。

另外,方法名前面有两个下划线和“__”的方法称为魔术方法。魔术方法是在特殊情况下调用的方法,除了构造函数之外,还有“__get”和“__set”。我离题了,但是构造函数可以如上所示编写和使用。

使用示例

从这里开始,让我们实际使用它并建立图像。首先,创建一个类。这次,我们将创建一个人类类,Human类。

类 Human { 私有 $name; 私有 $age __construct( $name, $age, $from = '日本' ) { $this->name = $name; ; $这个->来自 = $来自; } }

由于我们正在创建一个人类类,因此我们将“姓名、年龄和出生地”作为必要的属性(变量)。调用此类时,必须将构造函数参数中指定的数字传递给创建实例时的参数。

$ human = new Human('芋头', 32);

通过编写上面的代码,我们能够通过将必要的值传递给构造函数来实例化 Human 类。 $ human 存储 Human 类。

这里出现一个问题。

“构造函数有三个参数,但实例化时只指定了两个,为什么我可以创建一个?”

这就是问题所在。

如果仔细查看构造函数的内容,您将看到第三个参数 $from 的值为 Japan。这样,在一般的构造函数和 PHP 方法中,您可以设置一个初始值,例如如果没有收到任何消息,则输入该值。如果接收到一个值,则分配接收到的值并且不调用初始值。

其次为什么变量被指定为私有,是因为禁止从外部直接改变它们。这种写法称为封装

那么, “直接从外部进行更改有什么问题吗?”

例如,如果您只想在年龄变量 $age 中输入 200 岁以下的值,并且启用直接更改,则您将能够输入 201 岁之后的值。因此,我们使用方法封装该值,通过方法等传递,通过条件检查判断是否是无效值,然后赋值给变量。

本例中,我们准备了一个set方法,并将判断表达式写在set方法内。
通过在构造函数中调用 set 方法,当 Human 类实例化时,将调用 setAge() 并限制 $age 中存储的值。

在下面的示例中,当接收到 201 或更高的值时,将强制输入 200。

类 Human { 私有 $name; 私有 $age __construct( $name, $age, $from = '日本' ) { $this->name = $name; ); $this->from = $from; } 公共函数 setAge($age) { if ($age <= 200) { $this->age = $age } else { $this->age = 200 } } }

・使用构造函数的优点

通过在构造函数中初始化变量,新创建的实例的变量将始终包含指定的值。此功能允许变量为每个对象都有值。

概括

你觉得怎么样?

这次我专注于构造函数,但是关于面向对象还有很多其他东西需要学习,所以让我们继续学习吧!

这就是本博客的全部内容。
感谢您阅读到最后。

如果您觉得这篇文章有帮助,请点赞!
17
加载中...
17 票,平均:1.00 / 117
9,918
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

松木

我喜欢扑克和橄榄球。
漫威喜欢“浩克”

我的座右铭是专注×时间+运气