最近在用PHP做项目。总体上来说,我觉得这个开源的语言挺不错的,但是也有些地方让我极其不爽,比如弱类型变量、变量未经声明就可以使用等等等等。
就拿上周五的一件事来说吧,当时有一个函数,根据参数option来返回不同的结果:
也许有人会说造成这一切的是因为我自己粗心大意,如果小心一点,就不会发生这种事。但是我不同意这个说法,从古至今,谁能不犯错?假如PHP有如VB那样的option explicit,那么在这段脚本在被解释时就会报错,而不是生成一个意想不到的结果来混淆我的视线,我就不用花30分钟来找这个BUG,造成这个麻烦的更多是由于PHP本身的设计。
虽说做软件最重要的是程序员的思想,但是我还觉得,一门高效的语言更为重要,从这点来说,.Net和Java真是强大呀,两者中.Net在做中小型企业开发的时候更为高效,有段时间没接触.Net了,希望将来3.0、4.0会越来越好吧。
就拿上周五的一件事来说吧,当时有一个函数,根据参数option来返回不同的结果:
<?
define("option1", "option1");
define("option2", "option2");
function get_something($option = option1) {
if ($option == option1)
do_something1();
elseif ($option == option2)
do_something2();
}
?>
我调用这个函数后,期望能够do_something2(),结果弄死就不是我想要的结果,我以为是我传入的参数有问题,就一直在查看生成这个参数的代码段,花了30分钟,终于发现毛病在哪儿了,原来我把get_something里的第二个$option写成$opion了:(define("option1", "option1");
define("option2", "option2");
function get_something($option = option1) {
if ($option == option1)
do_something1();
elseif ($option == option2)
do_something2();
}
?>
也许有人会说造成这一切的是因为我自己粗心大意,如果小心一点,就不会发生这种事。但是我不同意这个说法,从古至今,谁能不犯错?假如PHP有如VB那样的option explicit,那么在这段脚本在被解释时就会报错,而不是生成一个意想不到的结果来混淆我的视线,我就不用花30分钟来找这个BUG,造成这个麻烦的更多是由于PHP本身的设计。
虽说做软件最重要的是程序员的思想,但是我还觉得,一门高效的语言更为重要,从这点来说,.Net和Java真是强大呀,两者中.Net在做中小型企业开发的时候更为高效,有段时间没接触.Net了,希望将来3.0、4.0会越来越好吧。