技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> php语言漫谈

php语言漫谈

浏览:3146次  出处信息

    不知觉间,php使了两年多了,中间踩过不知多少坑,当然,也从中体悟到很多东西,也做了不少东西,多多少少有些感想,慢慢总结下来吧。

1 php语方层面很随意:

    这也主要是由它的功能及所属的层面决定的吧。php弱类型,在变量比较的时候可以选择使用==或===,前者表示变量转换成同类型后的值是不是相等,而后者则是要求首先是类型相同,然后值也相同。

    php变量可以动态定议,它不需要提前定意一个变量,也不必要定义的时候指定该变量的类型。比如var $variable;则一个$variable变量便产生了,它的类型实际是由赋于它的值决定的。因此这一方面,使用都可以少了许多束缚。

2 php有很好的正则支持:

    php提供了较为丰富的正则支持,如preg_match, preg_match_all等。

    如果想从一个字符串或文件中提取出来一些片段,那是十分方便的。比如有如下文本:

以下是引用片段:
192.168.1.1 xxx user:zja601 url:http://www.jiuanblog.cn

如果我们想提取出user和url的话,如简单语句就可搞定:

以下是代码片段:
if (preg_math(’/^.*user:([^\s]*)\surl:(.*)$/’, $string, $arr_result)) {
    printf(”user is:%s url is:%s”, $arr_result[1], $arr_result[2]);
}

简单吧,当然,shell脚本可能会有更简单的办法,比如:sed -n ’s/^.*user:\([\s]*\)\burl:\(.*\)$/\1 \2/p’

但php可以结合其它的一些场合,而不像shell那么孤立的功能,使得整体功能更加灵活。

3 php有强大的函数库:

    比如数组$_GET参数到字符串形式的来回转换,有explode和build_string_query就很轻松的搞定了。比如数组的array_merge,push, pop等等,可能帮助你事半功位。比如php数组的强大功能,给你在c/c++花很大力气才能达到的效果。比如操作pdf,文件等函数,在需要的时候文档一下即可搞定。

4 php对面向对象的思想支持的也相对不错:

    从php4之后,php对面象对象支持的越来越好。特别是interface的抽象,可能使设计的时候更加关注接口间的合理性考量。php的继承关系也达到了一个很好的复用效果,如果你是一位C++爱好者,那么也试一下php的C++版本吧,一定会有不错的效果。php的对象的执行也是动态的,就是在c++或java里讲的后期绑定吧。

5 php语言的动态性:

    php语言具有动态性,它在动态执行的时候,解析代码。源代码写好即可执行,不必要经历一个繁琐的编译过程。动态性也表现为程序运行时解析,因此它只解析运行到的代码而不去解析未执行的代码。(尽管有人说这一点并不太好)动态性的另外一个层面就是上面讲的对象的动态性了。

其实php也有其内在的陷阱

比如函数参数的引用传递,比如函数返回值的引用返回,这些都有可能造成php的fatal的出现。另外,正是由于php的弱类型,往往有时候,我们不能很精确的把握程序进行时的值或状态。如果真的想得到当时的值或状态,可能花费的力气并不值得(并不是做不到)。php的@符号用来抑制一些错误的报出,有时候不做一些额外的判断,就有可能有意想不到的问题产生。php函数名的长度会影响其执行的效率,这可能许多程序员不会注意到(当然很多场合不必要去注意这些事),尽管我们选择php语言,不是选择它的效率。php动态执行,因此一些有基本语法错误的地方,如果程序运行时走不到,那么有可能就不会被发现。诸如此类的还有很多。。。

建议继续学习:

  1. 每个程序员都应该学习使用Python或Ruby    (阅读:16278)
  2. 敲击最多的键和编程语言语法    (阅读:5834)
  3. 为什么Lisp语言如此先进?(译文)    (阅读:5631)
  4. 编程语言的选择很重要    (阅读:4275)
  5. 编程语言的可读性    (阅读:3941)
  6. PHP很烂?我的看法    (阅读:3621)
  7. 几种计算机语言的评价(修订版)    (阅读:3278)
  8. 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发    (阅读:3181)
  9. 为什么我喜欢Lisp语言    (阅读:2976)
  10. 再谈非主流工业语言    (阅读:2910)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1