ZAČÁTKYNÁVODYOOPDOKUMENTACE
教程/
基本知识

如何理解PHP代码

11. 04. 2020

Obsah článku

大多数语言都可以用不同的方式来写,结果是一样的。同时,一旦你写好了代码,你可能会在未来的某个时候阅读它,并对它进行修正或添加新的功能。

因此,为了避免一直思考代码并很好地驾驭它,有一套工具和方法可以直接在PHP中 "正确地写代码",或者以直接支持其未来可读性的方式来构建代码(甚至由另一个人)。

作者的说明:

经验表明,代码过时的速度非常快,甚至应用程序的作者本人在半年后也认为自己的代码是陌生的。因此,如果我们从一开始就正确地编写它,就不会妨碍它未来的可扩展性。

在实际开发中,秘密表明,统一的代码格式和一般规则的引入可以防止一些错误。

TL;DR

代码的可读性往往与格式化和书写规则有关。

在开发团队中,为我们如何格式化和维护代码建立正式规则是有意义的。

就我个人而言,我使用(2022年)Nette框架的编码标准,规则在每次提交时都会自动评估。更多信息请参见【使用GitHub CI】(https://php.baraja.cz/github-actions-nejlepsi-ci-pro…

安装编码标准测试和运行它是通过一对命令完成的。

composer create-project nette/coding-standard temp/coding-standard ^3 --no-progress --ignore-platform-reqs
php temp/coding-standard/ecs check src

代码中的注释

这些注释对代码的处理没有影响,只供程序员使用。对于较大的、较完整的代码,重要的是要写一个说明,解释代码的用途以及它在原则上是如何工作的。

// 变量的定义
$a = 5;
$b = 3;
$c = 2;
// 所有数字的总和
$sum = $a + $b + $c;
// 为用户列出清单
echo $sum;

注释以一对斜线(//)开始,在行末之前都是有效的。它可以在任何地方使用。

该说明不应解释该算法的具体实施,而应解释其一般原则。这是因为随着时间的推移,代码可能会发生几次变化,在这种情况下,我们也应该纠正注释。

作者的说明:

通常的情况是,代码并不完全按照其描述的那样做。这主要是由于程序员在某处犯了一个错误。因此,该说明应该描述一般的原则,这样我们就可以相应地修改代码。但千万别忘了,关于应用程序中实际发生的事情,唯一的真相只能由实际的代码来描述,而注释对此没有影响。

代码部分的图形化分离

在设计一个应用程序时,将逻辑块彼此分开是很重要的。通常情况下,它们被分成函数、方法,或者在基本代码的情况下至少被注释分开。

在一个较长的算法中,我通常会在开头先描述整个算法的原理,然后对代码中的各个地方进行编号,以便开发者能够更好地理解基于它们的具体功能。

/**
* 该函数计算算术平均值。
*1.获得一个数字列表
* 2.获得数字的总和和数量
* 3.计算并打印平均数
*/
// 1.
$numbers = [1, 3, 8, 12];
// 2.
$sum = array_sum($numbers);
$count = count($numbers);
// 3.
echo '平均数是。' . ($sum / $count);

字符/**开始一个多行注释,一直到*/标记。为了便于阅读,最好在每一行的开头都加一个星号。

文件评论

文档注释通常用于描述和记录函数(行为、参数、返回值、作者等)。

在早期的PHP版本中(7.0之前),还没有使用数据类型,所以特定变量的类型直接在注释中描述。

/**
* @作者 Jan Barášek <jan@barasek.com>
*@license MIT
* @链接https://php.baraja.cz
*@param float[] $numbers
*/
function average(array $numbers): float
{
$sum = array_sum($numbers);
$count = count($numbers);
return $sum / $count;
}

文档注释被称为 "文档",主要是因为它们有一个预先商定的格式,可以被特定的开发环境(和编辑器)理解,也可以被生成文档或检查代码的自动工具理解。

用捷克语或英语写代码?

我只用英文写所有的代码(包括函数名、变量、注释......)。

这有很多好处。

  • 开发者可以立即主动训练他的英语。
  • 应用程序的很大一部分使用的是英文的第三方库,所以它自动保持一致性
  • 大多数高级的东西根本没有英文翻译
  • 我相信你能想到许多其他的例子

PHP并不直接要求英语,你可以用英语写一切。我认为英语的使用更多的是一种对未来的投资,也是一种机会,可以让其他不是以英语为母语的人轻松地扩展代码。

完全本地化的英文代码也在公司中使用,所以从一开始就练习英文是很好的。

数字运算的顺序

请务必记住,在进行数字运算时,PHP会对数字进行四舍五入。这往往会成为一种困扰,因为任何带有小数的结果都会伴随着一些不准确的地方。

一个好的解决方案似乎是先将数字递增,然后用最大可能的数字进行计算。这样一来,从统计学上来说,失真就会减少。

例子。

echo 10 / 3; // 他写的是3.33333333333。

在某些情况下,你也可以使用完全不使用小数的技巧,把所有东西都作为整数来计算。在这种情况下,不存在这种扭曲。

echo 1 / 2 * 2; // 这更糟糕,因为1/2 = 0.5*2 = 1
echo 2 * 1 / 2; //这样更好,因为2*1=2/2=1

当你解决大的、复杂的数字运算时,用分数来写数字。

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
11.