PHP Heredoc 的乐趣

Heredoc PHP Heredoc PHP 语法是PHP里面写入一大块的文字的方式,不是传统的使用单引号,双引号字符串分隔符。他依赖于 <<< 和一个用来表示这个字符串的结束的标示符。  <?php $string = <<<STRING $x elephpants STRING ; ?> Heredoc 还有一个Nowdoc替代, 它是Heredo的“单引号版本”。 它实际上在标示符定义上就是用了单引号,并且不会替换它里面的变量值。 <?php $string = <<<‘STRING’ $x elephpants STRING ; ?> Nowdoc 很少被使用。在Heredoc/Nowdoc的使用中,仅仅只有3%使用Nowdoc的语法。这个可能是因为Nowdoc最近才被加到语言中(PHP 5.3),又或者是典型的担心未来可能会要使用字符串中的变量。

什么是可行的静态分析

静态分析指在不执行代码的情况下审查代码。这样的代码审查可以是一个项目的一个阶段,或者当代码被转移给一个新的程序员(他也可能是6个月后的你自己)的时候自然发生。在两种情况下,目的都是通过阅读代码找到缺陷,理解它和找到不可能的情况。

为什么静态审计帮助代码质量

静态审计是一个帮助提高代码质量的非常好的工具。审计意味着写下的代码被一个外部的审计师审查。人工的审计者通常是最好的,虽然他们不是总是适用。静态审计提供一个代码审查的自动的方法,并能很快地接收到反馈。它系统性地检查每一个文件的每一行代码。它不针对同人工审核一样的违规实例,但是也带来一系列的很好地优势:

在PHP中用好接口

  什么是接口? 接口,在PHP中也像在其他的面向对象(OOP)的语言中一样,定义在一个类中有哪些方法必须实现。接口给名字和参数以记录,但是没有内容:实际的(实现)代码将会要类来提供。 <?php interface movable { function move($distance) ; } class human implements movable { public function move($distance) { $this->walk($distance); } } class dog implements movable { public function move($distance) { $this->run($distance); // dogs never walk… } } class marsrover implements movable { public function move($distance) { for($i = 0; $i < $distance / […]

PHP里的神奇数字

神奇数字式一个没有解释其意义的字面值,而且它出现在代码里多次。这样的值将会显示没有任何意图,它应该被替换为常量:常量的名字将会使代码更可读,在未来更加容易更新。 ç 让我们来看看一些代码,并且把它的神奇数字分离出来来试图理解它的情况。这是一个真实的数字的例子,来源于最近发布的一个关于120 kLOC的开源应用。       Value Number of occurrences 0.0 1 1.0E-08 1 0.05 1 0.33 1 1.0 10 1.7 4 2.0 1 2.3 1 3.2 1 4.0 1 4.199999 1 4.299999 1 5.0 1 5.2 2 7.3 1 8.0 1 365.25 3 3600.0 1 用眼快速地扫一下显示: 0.33 看上去像是 1/3, 有点取一个近似值。它可以被取代为用被除数3的除法。 365.25 看上去像一个一年的时间用天表示。另外一个可疑的地方时整数365和366在应用中使用了多次。 几个整数被表达为实数(0, […]

更好的PHP Echo

你能在下面这行代码中找到多少可以改进的地方呢? echo (“this “.$will.” be displayed.”); Echo不需要小括号 首先,可能也是最明显的是那个无用的小括号。这个echo是一个“语言结构”(structure of language),也叫做PHP一个特殊的函数:在包括其他的一些特点中,一个特点是它不需要任何的小括号。这个其实也适用于inclusions,return和print。上面的代码和下面的代码实现一样的目的:

代码死亡

代码是如何死亡的 代码出生,成长,成熟,衰老然后死亡。它可能被视作一个生命体,就像我的花园里的郁金香一样。把这样一个图景放到代码上有点可怕:小小的笔误出现了,一点点代码消失了,常量随着时间的推移改变着它们的值(代码也有通货膨胀吗?),一部分代码长出来了没有任何道理。这样一个样子,那么难怪代码会有一个寿终正寝的时候。