返回首页
当前位置: 主页 > 网络编程 > Php实例教程 >

浅论php5.4 的一些不足

时间:2012-05-11 01:44来源:知行网www.zhixing123.cn 编辑:麦田守望者

在刚接触php 的时候, 我十分喜欢这种脚本语言, 因为它学习成本很低, hosting 也很方便. 但是我渐渐发觉, php 作为一种低端的脚本语言, 性能也不是很突出, 过程化的设计存在诸多缺陷, 而且在oop 之路上跌跌撞撞多年无甚建树. 与javascript 比较起来, php 至少在以下方面让我感到很不爽:
1.在设计之初就把"." 号用于连接字符串, 导致对象成员只能用"->" 来调用.
2.变量要以"$" 开头, 使用不便而易出错.
3.不彻底的oop 设计, 导致众多内置函数名杂乱无章, 离开了手册就没法写东西.
4.不能省略句末";" .
5.不能使用"[]" 和"{}" 等字面量来定义数组和对象 (php5.4 起可以使用[]).
6.函数不是一种数据类型 (php5.4 起函数可以作为数据类型).
7.函数与变量的命名过度割裂.

也许在php5.4 之前的版本里, 这最后一点不那么突出, 但是php5.4 开始把函数作为一种数据类型, 函数与变量之间的界限已经非常模糊了. 在这种情况下php 还继续用两种标准来限制函数名和变量名, 这显得非常滑稽可笑.
< ?php
function a(){} //Works
a = function(){}; //Error, illegal variable name.
?>
< ?php
$a = function(){}; //Works
function $a(){} //Error, illegal function name.
?>

< ?php
$a = function(){};
function a(){}
var_dump($a); //Works
var_dump(a); //Failed to access function a.
?>

我说, 这种命名限制对于一种语言来说到底有什么意义? 最后一个例子尤为可笑, php5.4 这种不彻底的革命, 把两种定义函数的方式区别对待, 目的是要让开发者们抛弃传统的 "function a(){}", 转而使用更灵活的"$a = function(){};" ?

php5.4 在学习javascript 上所做出的改变值得肯定, 但仅仅这些不彻底的改变是不够的. 我希望php 能早日抛弃那些老旧的传统, 从下一个版本开始全面贯彻javascript 的设计思想.

------分隔线----------------------------
标签(Tag):php php教程 php实例教程 php5 php源代码 php基础教程 php技巧 php6
------分隔线----------------------------
推荐内容
猜你感兴趣