10条PHP编程习惯

过去的几周对我来讲是一段至关复杂的经历。咱们公司进行了大裁人,我是其中之一,但却体验到了其中的乐 趣。我历来没有被开除过,因此很难不去想得太多。我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人,因此我寄去了简历并得到了面试机会。在面试之 间,我和其主要的程序员们在咨询电话中聊了聊,最后他们给我出了一套测试题,其中有一道很回味无穷。php

  找出如下代码的错误之处:程序员

  $x = new Array();面试

  $x[sales] = 60;正则表达式

  $x[profit] = 20:编程

  foreach($x as $key = $value) {数组

  echo $key+" "+$value+"安全

  ";编辑器

  }函数

  }post

  你能找到几个呢?

  若是你发现函数参数列表中少了逗号、“new Array()”是不正确的、行末用了冒号而不是分号、foreach中没有用“=>”及用“+”来链接字符串,那恭喜你,你找到了全部的错误,你已经掌握了PHP编程的基础。

  如今我来讲说我是怎么回答这道题的。我固然也找出了以上这些问题,但我更进一步。好比,你有没有发如今数组索引里没有用引号将字符串括起来?虽然这不 会形成严重错误,但这是一个编码错误。另外,你注意到在echo一行它使用了双引号而不是单引号吗?使用了PHP开始标志的缩写形式?而且没有用 “

  ”而是用了“

  ”?

  在找出了实际错误后,我又在上面找到的问题后面加了注释。这足够让这份答卷从“正确”转变为“发人深省”了,这也给个人申请加了很多分,因此他们决定 聘用我。(但最后我拒绝了,由于我喜欢紧凑的生活节奏,并将本身的PHP 技能奉献给个人客户,而不是一家涉猎电信市场的公司。我须要一个舞台来大展身手。)

  那么接下来就来看看我写的10条PHP编程习惯吧:

  一、使用单引号括起来的字符串

  当使用双引号来括字符串时,PHP解释器会对其进行变量替换、转义等操做,如“ ”。若是你只想输出一个基本的字符串,就用单引号吧,这样会节省一些资源。固然,若是你须要进行变量替换的,那就必须用双引号了,但其余状况下仍是用单引号吧。

  二、字符串的输出

  你认为如下哪一条语句的运行速度最快?

  print "Hi my name is $a. I am $b";

  echo "Hi my name is $a. I am $b";

  echo "Hi my name is ".$a.". I am ".$b;

  echo "Hi my name is ",$a,". I am ",$b;

  echo 'Hi my name is ',$a,'. I am ',$b;

  也许这看起来很奇怪,但事实上最后一条的运行速度是最快的。print比echo要慢,在字符串中进行变量替换时会慢,而链接字符串要比用逗号链接来 得慢,最后一句则是第一个习惯的体现。因此,不在字符串中进行变量替换不只会加快程序运行速度,也会让你的代码在任何语法高亮显示的编辑器中显得更为易懂 (变量会被高亮显示出来)。不多人知道echo的参数能够用逗号链接,且速度会比字符串链接要来得快。最后再用上第一个习惯,那这条语句就很是好了。

  三、在数组索引中使用单引号

  正如你在上面的测试题中所看到的,我指出了$x[sales]从严格意义上来讲是错误的,索引应该被括起来,即$x['sales']。这是由于 PHP 会将没有括起来的索引辨认为“裸”字符串,并把它解释为一个常量。当找不到该常量的定义时,才将其解释为一个字符串,因此这条语句才是可运行的。把索引括 起来能够省去这部分工做,若是未来正好要用这一字符串定义常量时也就不会有错误了。我甚至据说这样作要快七倍左右的时间,虽然我没有亲自测试过。更多关于 这一话题的讨论,请看PHP手册“数组”一章中的的“数组的能与不能”一节。

  四、不要使用开始标志的缩写形式

  你正在使用这样的符号吗?“

  五、尽可能不要使用正则表达式

  在进行常规的字符串操做时,尽量不要去使用正则表达式(preg和ereg系列函数)。str_replace函数要比preg_replace快得多,甚至strtr函数也要比str_replace来得快。省去这些没必要要的麻烦吧,你的老板会感谢你的。

  六、不要在循环声明中使用函数

  这个问题不仅仅出如今PHP中,你能够在其余语言的代码中常常看到:

  差:for($i=0;$i

  好:$count=count($array);for($i=0;$i<$count;$i++){...}

  这因该很好解释,但许多人就是想少写一行代码而浪费了系统资源。若是在循环声明中使用了count函数,那每次循环都会调用一次。若是你的循环次数不少,那就会浪费很是多的时间。

  七、永远不要使用register_globals和magic quotes

  这是两个很古老的功能,在当时(十年前)也许是一个好方法,但如今看来并不是如此。老版本的PHP在安装时会默认打开这两个功能,这会引发安全漏洞、编 程错误及其余的问题,如只有用户输入了数据时才会建立变量等。现在这两个功能都被舍弃了,因此每一个程序员都应该避免使用。若是你过去的程序有使用这两项功 能,那就尽快将其剔除吧。

  八、必定要对变量进行初始化(这里的“初始化”指的是“声明”——译者注)

  当须要没有初始化的变量,PHP解释器会自动建立一个变量,但依靠这个特性来编程并非一个好主意。这会形成程序的粗糙,或者使代码变得另人迷惑,因 为你须要探寻这个变量是从哪里开始被建立的。另外,对一个没有初始化的变量进行递增操做要比初始化过的来得慢。因此对变量进行初始化会是个不错的主意。

  九、对代码进行注释

  这个问题已经提过不少次了,但再屡次也不够。我知道有些地方是不聘用不对代码进行注释的程序员的。我在前一次工做面试后和副总、面试官一块儿浏览我写的代码,当他们对我所作的代码注释印象深入,还了解了一下个人这一习惯。一天以后,我获得了这个工做。

  我知道有些自称为PHP大师的人声称本身的代码写得很好,不须要添加什么注释。在我看来,这些人都是垃圾。学一写注释的规范和技巧,熟悉一下phpDocumentor或Doxygen之类的注释辅助软件,都是值得的。

  十、遵循一个编程规范

  关于这一点,是你须要在面试中询问你潜在的老板的,问问他们正在使用什么编程规范。PEAR?Zend?内部规范?要说起你正在使用的编程规范,无论 是你本身建立的,仍是目前广泛流行的一种。对于PHP这种松松垮垮的语言来讲,若是没有一个好的编程规范,那么那些代码就会看起来想一堆垃圾。发臭的,令 人做呕的垃圾。一些基本的规范包括空格规范、打括号匹配、命名风格等。这对任何一个追求高质量的代码的人来讲都是必须的。

  有人说:“我讨厌你的4个空格的缩进。”我要说,什么?用4个空格来缩进?这比用制表符过占用3个字符的空间。更重要的是,只要是使用比记事本高级的 编辑器,你能够自定义制表符的缩进值。因此每一个程序员均可以以其最习惯的方式来看代码。能够时设置为4,也能够设置为0(若是你是个受虐狂)。反正我不在 乎,但你就是不能用空格来缩进!

  总的来讲,我但愿以上这些编程习惯能够对你有所帮助。若是你想在面试中留下好印象,只须要一些小细节就能够了。

 

摘自:http://www.shouce.ren/post/view/id/108689

相关文章
相关标签/搜索