当前位置: 首页 > 编程笔记 >

PHP中的惰性编码;迷你大乱斗

牛骞仕
2023-03-14
本文向大家介绍PHP中的惰性编码;迷你大乱斗,包括了PHP中的惰性编码;迷你大乱斗的使用技巧和注意事项,需要的朋友参考一下

如果PHP世界中有一件事确实让我感到烦恼,那就是程序员编写了我所谓的“惰性代码”。这是可以工作的代码,但是创建时间最少(通常是指击键)。这几乎总是一件坏事,因为它难以阅读,难以更改并且几乎始终没有评论。主要问题是PHP是一种宽容而又易变的语言,它允许您以各种不同的方式和格式编写代码。

惰性编码遇到的最常见问题是程序员编写if语句时。这些可以用多种不同的方式编写,我发现的最常见的方法是省去大括号,如下所示:

if ($variable==true) 
    echo 'true';

这可以正常工作,但是如果您想向if语句中添加内容,会发生什么呢?以相同的示例为例,让我们尝试添加另一行代码来更改变量的值。

if ($variable==true) 
    $variable = false;
    echo 'true';

在PHP中,仅将无括号if语句的第一条指令计入该语句的一部分,因此,无论变量的值是什么,上面的代码将始终显示“ true”。再举一个例子,假设我们有一个这样的if / else语句。

if($variable==1) 
    echo '1';
elseif($variable==2)
    echo '2';
else
    echo '3';

如果我们在if或elseif块中添加另一行代码,则语法会出错,因为PHP无法将下面的块与上面的块匹配,请尝试运行以下代码,您会明白我的意思。

if($variable==1) 
    echo '1';
elseif($variable==2)
    $variable = 3;
    echo '2';
else
    echo '3';

因此,为了修改这些语句,我们需要在其中添加大括号,这看起来似乎并不多,但这意味着添加的代码量超出了我们的原意,并且在需要时很容易导致语法错误和代码损坏要做的就是做一个简单的更改。我可以记得至少有一个实例,其中我想修改一个包含30个左右子句的if语句,而不是在其中添加大括号,因此我决定编写第二个if语句,该语句允许我更改原始语句的一部分内容陈述。就维护而言,这是不好的,但是如果将一堆语句放在一起,那么一堆无括号的情况会变得更糟。它们通常每行写一次,这使得代码非常难以阅读。

if ($variable1==1) echo '1';
if ($variable2==2) echo '2';
if ($variable3==3) echo '2'; elseif ($variable4==4) echo '4';

如果同一块中有各种带括号和不带括号的if语句,则情况会变得更糟。试图弄清楚一个起点和另一个终点可能是绝对的痛苦。

编写代码时,我敦促您以可读且可维护的方式编写代码,并附上适当的注释。这不仅可以帮助其他人阅读您的代码,还可以让您自己告诉您6个月后您打算做什么。至少,您应该为函数和类编写PHP文档注释。

随着诸如框架之类的事物的出现,PHP编码通常变得更加专业,惰性编码开始变得不那么普遍了。那里有一些项目(即WordPress和其他类似的开源CMS系统)仍然有很多这类的东西。为了防止懒惰的代码蔓延到您自己的代码和项目中,您可以使用类似PHP_CodeSniffer的代码来自动遍历您的代码,并让您了解这种情况。如果您尝试将方括号放在PHP if语句之外(如我上面已经讨论过的),PHP_CodeSniffer将通过以下错误通知您:

> phpcs test.php
 
FILE: test.php
--------------------------------------------------------------------------------
FOUND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
 2 | WARNING | Inline control structures are discouraged
--------------------------------------------------------------------------------

我很想听听每个人对惰性编码的想法。在PHP编码方面,您是否有个人讨厌的东西,而您看到的最懒惰的编码情况是什么?还是您认为只要编写代码就没关系吗?在下面发表评论。

 类似资料:
  • 问题内容: 我有这个非常奇怪的问题。我有一个包含一些德语字母的网站,当它只是不带php的html时,当我将符号更改为UTF-8时,符号将显示为带有编码的属性,它们不会显示,而不是Ö。当我将html放入php并在Wamp上使用Zenset studio以charset = iso-8859-1编码启动时,得到�而不是Ö(我想补充一下,这个Ö是单选按钮的值) 。当它在一个 标签以正确显示。您能告诉

  • 我在Windows中的Git Bash终端可以与所有其他git bash命令一起工作,但是对于使用Git Bash为环境激活conda,输出都是胡言乱语。我找不到其他面临这个问题的人。为了回来,我必须杀死并启动一个新终端。这是Minicon da的新安装,我在以前的安装和不同的环境中也遇到了同样的问题。它可以与Native Anaconda Prompt一起工作,但是我喜欢在我的工作流程中使用Gi

  • 源编码与目标编码的不一致. 而中文window系统默认编码GBK,害惨了多少程序员. 要尽量减少出现乱码,我个人认为要做到5码合一, IDE(Eclipse/idea),页面(jsp/其他模板引擎),应用服务器(tomcat等), 源码(Java源码及周边文件),数据库编码. 将Eclipse设置为UTF-8 打开Eclipse安装目录下的eclipse.ini,在最末尾新增一行 -Dfile.

  • 问题内容: 我是在Python中创建一个简单的迷你语言解析器之后,在接近问题域的地方进行编程。 无论如何,我想知道这里的人会怎么做-在Python中执行此类操作的首选方式是什么? 我将不提供我所追求的具体细节,因为目前我只是在研究整个领域在Python中有多容易。 感谢您的输入! 问题答案: Pyparsing非常适合编写“小语言”。我在PyCon‘06上做了一个有关编写简单冒险游戏引擎的演示,其

  • 本文向大家介绍PHP页面转UTF-8中文编码乱码的解决办法,包括了PHP页面转UTF-8中文编码乱码的解决办法的使用技巧和注意事项,需要的朋友参考一下 对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。 PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8")

  • 我们正在为Scala程序开发一个静态验证器(本硕士论文中描述的早期工作),目前的重点是验证涉及延迟评估的Scala特性。我们主要感兴趣的是特征的语义(行为),而不是其他(尽管很重要)方面,如可理解性或简洁性。 为了简化事情,我们暂时忽略了单例对象可能具有的特殊角色。例如,有些是伴随对象(这可能与它们的懒惰性质正交),或者有些是包对象。 懒惰的瓦尔斯 假设一个懒惰的瓦尔 其中是初始化块,即确定懒惰v