PHP编程习惯

题目:找出以下代码的错误之处:
<?
function baz($y $z) {
    $x = new Array();
    $x[sales] = 60;
    $x[profit] = 20:
    foreach($x as $key = $value) {
        echo $key+" "+$value+"<BR>";
    }
}
你能找到几个呢?
如果你发现函数参数列表中少了逗号、“new Array()”是不正确的、行末用了冒号而不是分号、foreach中没有用“=>”及用“+”来连接字符串,那恭喜你,你找到了所有的错误,你已经掌握了PHP编程的基础。
现在我来说说我是怎么回答这道题的。我当然也找出了以上这些问题,但我更进一步。比如,你有没有发现在数组索引里没有用引号将字符串括起来?虽然这不会造成严重错误,但这是一个编码错误。另外,你注意到在echo一行它使用了双引号而不是单引号吗?使用了PHP开始标志的缩写形式?并且没有用“<br/>”而是用了“<BR>”?
在找出了实际错误后,我又在上面找到的问题后面加了注释。这足够让这份答卷从“正确”转变为“发人深省”了,这也给我的申请加了不少分,所以他们决定聘用我。(但最后我拒绝了,因为我喜欢紧凑的生活节奏,并将自己的PHP技能奉献给我的客户,而不是一家涉猎电信市场的公司。我需要一个舞台来大展身手。)
那么接下来就来看看我写的10条PHP编程习惯吧:

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

2、字符串的输出
你认为以下哪一条语句的运行速度最快?
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的参数可以用逗号连接,且速度会比字符串连接要来得快。最后再用上第一个习惯,那这条语句就非常好了。

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

4、不要使用开始标志的缩写形式
你正在使用这样的符号吗?“<?”是非常糟糕的符号,它会引起与XML解释器的冲突。而且一旦你发布了这些代码,那么使用者就必须修改php.ini文件来打开对此符号的支持。所以实在没有理由去使用这种形式。用“<?php“吧。

时间: 2024-10-10 17:50:27

PHP编程习惯的相关文章

JavaScript教程:几种比较熟悉的编程习惯

由于JavaScript的灵活性,可以让每个人按照自己的习惯进行编写代码.有函数式的编程方式,也有现在用的较为广泛的对象字面量.由于面向对象的出现,JavaScript刚开始的函数编程也逐渐演化为类式编程方式.现在我对几种比较熟悉的编程习惯进行简单的说明: 1.对象字面量: var person = {    name:null,    setName:function(name){        this.name = name;        return this.name;    }, 

成功软件开发者的9种编程习惯

编程 好的原程序做出好的软件 有些人会想:只要程序运行结果好,就不管原程序编得怎样.但绝对不是这样的.软件不是一次性就作完的,有必要做修改,扩展等管理.所以原程序要尽量作成易看懂,管理方便. 这样做,第一是为了软件开发者方便,其次还会影响到软件的性能.管理不方便的程序不会作出好的软件. 希望通过这篇文章能学到好的编程习惯.要理解这文章的内容,你至少要懂得1个开发工具语言.这里举例说明的都是C语言,但你对C语言没有了解也不要担心.这里说明的是原理而不是特定的语言. 1. 语句要结束得彻底---(分

ASP.NET编程习惯

asp.net|编程 初学编程的朋友往往喜欢收集一些很"奇妙"的编程技巧,然而,技巧的积累往往并没有提高程序质量,反而引导一些编程者一味追求奇和新,忘记了基本编程习惯的培养,不利于团队的合作,可能,这也是中国并不缺少聪明的程序员,但是缺少聪明的开发团队的一个原因吧.在ASP.NET的开发中,可以学习的技巧不少,但是,一些基本的编程习惯我们一定要养成,这样不但能根本上提高程序质量和开发效率,而且,也利于程序的阅读和团队开发.如果自己写的程序只有自己可以看懂或者只有几个人可以看懂,即使程序

谈谈几个编程习惯

一个人的成功有时往往体现在细节上,而习惯往往是这些细节的具体表现形式,这里我也想总结几个不太好的编程习惯. 第一:int初始化的控制,对数据初始值的理解问题.下面的一段程序大概的意思就是,页面上有一个属性HighPrice,它最终会通过ViewState保存在页面中,如果ViewState为空,则设置属性HighPrice的值为-1,否则直接读取ViewState中的值.但实际情况并不是这样,程序在初始化时,HighPrice的初始值为0,所以下面的代码永远得不到-1. public int H

有助于面试的10条PHP编程习惯

过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人,所以我寄去了简历并获得了面试机会.在面试之间,我和其主要的程序员们在咨询电话中聊了聊,最后他们给我出了一套测试题,其中有一道很耐人寻味. 找出以下代码的错误之处: <?function baz($y $z) { $x = new Array(): $x[sales] = 60: $x[profit]

新手入门 最佳ASP.NET的编程习惯

初学编程的朋友往往喜欢收集一些很"奇妙"的编程技巧,然而,技巧的积累往往并没有提高程序质量,反而引导一些编程者一味追求奇和新,忘记了基本编程习惯的培养,不利于团队的合作,可能,这也是中国并不缺少聪明的程序员,但是缺少聪明的开发团队的一个原因吧.在ASP.NET的开发中,可以学习的技巧不少,但是,一些基本的编程习惯我们一定要养成,这样不但能根本上提高程序质量和开发效率,而且,也利于程序的阅读和团队开发.如果自己写的程序只有自己可以看懂或者只有几个人可以看懂,即使程序技巧神乎其技,对于程序

防御性编程习惯:求出链表中倒数第 m 个结点的值及其思想的总结

防御性编程习惯 程序员在编写代码的时候,预料有可能出现问题的地方或者点,然后为这些隐患提前制定预防方案或者措施,比如数据库发生异常之后的回滚,打开某些资源之前,判断图片是否存在,网络断开之后的重连次数或者是否连接备用网络,除法运算中的除数问题,函数或者类在接受数据的时候的过滤情况,比如如果输入一个指针参数,是否需要判断是不是空指针?输入一个字符串参数,是否需要判断字符串空否--总的来说就是防止出现不可预见的事情,设计出鲁棒性的代码. 看下面的例子 输入一个链表,输出链表中倒数第 m 个结点额内容

c-请大家看看这段代码怎么改进(我想养成好的编程习惯)。谢谢。

问题描述 请大家看看这段代码怎么改进(我想养成好的编程习惯).谢谢. 题目见图片. 下面是代码(这道题当然还有其他解法,我这里是刻意用链表做的) { #include #include typedef struct monkey{ int num; struct monkey * next; } M; void game(int, int, int); M create_list(M *,int ); int main(void) { int n; scanf("%d", &n

编程习惯:你会把函数的形参赋值给函数内临时变量吗?

问题描述 编程习惯:你会把函数的形参赋值给函数内临时变量吗? 阅读代码时,常会发现有人把函数的形参赋值给函数内临时变量,然后对这个临时变量操作,如下面的例子: int func(int i) { int temp=i; printf("%dn", temp++); return temp; } 和直接操作形参有什么区别呢?(如下) int func(int i) { printf("%dn", i++); return i; } 请大神指点--