【PHP】类
这是一篇针对初学者的关于PHP类的文章(厂˙ω˙)厂
班级的定义
你可以描述常量、变量、函数等。
就像一个房间可以将多个操作整理在一起一样。建议与namespace(命名空间)一起记忆。
起初开始学习PHP的时候,我曾经想过,“需要使用类吗?它和目录有什么不同呢?”但随着项目规模的增长和使用框架的需求,使用类是必要的。
课程的基础
如何写作
<?php
class Hoge
{
protected $hoge;
public function __construct(string $hoge)
{
$this->hoge = $hoge;
}
・・・
public function greeting(string $name)
{
echo 'Hello, '. $name;
}
}
XX这部分是一个类名(在这里是Hoge)。
在声明之前加上”protected”或”public”表示对于类外部的方法和变量的访问权限。
对于公共(public)或保护(protected)的情况下,可以在类内部使用”$this”来相互调用。
__construct() 方法是在调用类时必定首先执行的操作(也称为构造函数)。
您还可以为构造函数设置参数。
上述的内容已经省略了,但构造函数中设置的值($this->hoge)将在类内的方法中使用。
调用课程
我们可以从其他地方调用并使用该类。
使用时会创建一个新的类的副本并使用它。虽然这个词听起来陌生,但复制的内容被称为”对象”或”实例”,复制和创建被称为”实例化”。
$hoge_class = new Hoge('hoge');
echo $hoge_class->greeting('Tom'); // 'Hello, Tom'
一旦实例化后,$hoge_class 中会包含 Hoge 类的副本。然后可以使用箭头运算符调用 Hoge 类的方法(对于 public 访问权限的情况)。
关于访问权限的内容较多,希望可以在另一篇文章中进行说明。
为什么要写课文
可以使用require或include命令调用其他文件中的方法,但从哪里调用以及如何使用方法变得不太明确。
这也涉及到设计问题,但提供方法的功能,以及它所属的部分等提示,可以让我们更清楚地了解方法的作用。(至少我是这么认为的。)
我希望能涉及到著名的设计思想”面向对象”,但这是一个相当深入的话题,所以请参考链接。
这是我在对”面向对象”感到困惑时多次阅读的文章。
PHP面向对象编程入门(上篇)
有一天我希望能用自己的话语总结面向对象编程。。
课堂命名
在项目中,最好统一类名的命名规则。比如说,
-
クラス名は大文字から始める
「HogeContoller」、「HogeModel」など機能名を持たせる
「Users」「Articles」など複数形にする
诸如此类。由于某些框架需要遵循特定规则才能正确运行,因此需要注意。
虽然跟类名的命名有点不相关,但如果不清楚规则,可以参考编码规范。通常遵循psr-2规范。