1. 呃,PHP是解释脚本语言。而且所有的语句都是以 ; 结尾!是规范源码的可读性!
2. 请问你知道我想通过下面的代码输出什么:
echo '{$c='1',$d='2',$e='3'}';
所以我想说的是,既然你都不知道我的想法,计算机怎么会知道。
3. php的echo语句允许多个参数,于是可以echo 'a=', $b $c, ';d=', $d;
并且,赋值可以在任何时候进行,这意味着可以
echo $a=3; //输出3,并且把3赋给$a
所以,当你书写了一个错误的复杂表达式时,根本就没有办法自动修正,比如这个:
echo '{$c='1',$d='2',$e='3'}';
它是一句错误的代码。
在发现错误后,它可能被我修改成
echo '{$c=\'1\',$d=\'2\',$e=\'3\'}';
输出{$c='1',$d='2',$e='3'}。
但是也有可能是
echo '{$c=\'1',$d='2',$e='3\'}';
输出{$c='123'},同时给$d和$e赋值。
或者也可能是
echo '{$c=\'1\',$d=\'2',$e='3\'}';
输出{$c='1',$d='23'},同时给$e赋值。
或者,还有其他更多种修改方法,而它们会得到完全不同的结果。
但是,只有我知道我需要哪种结果,到目前为止计算机不可能替我做出正确的选择。
所以,报告错误并让开发者自己修改,比“代替开发者处理错误”好得多。
4. php的echo语句允许多个参数,于是可以echo 'a=', $b+$c, ';d=', $d; //讨厌会漏半角加号的UC
并且,赋值可以在任何时候进行,这意味着可以
echo $a=3; //输出3,并且把3赋给$a
所以,当你书写了一个错误的复杂表达式时,根本就没有办法自动修正,比如这个:
echo '{$c='1',$d='2',$e='3'}';
它是一句错误的代码。
在发现错误后,它可能被我修改成
echo '{$c=\'1\',$d=\'2\',$e=\'3\'}';
输出{$c='1',$d='2',$e='3'}。
但是也有可能是
echo '{$c=\'1',$d='2',$e='3\'}';
输出{$c='123'},同时给$d和$e赋值。
或者也可能是
echo '{$c=\'1\',$d=\'2',$e='3\'}';
输出{$c='1',$d='23'},同时给$e赋值。
或者,还有其他更多种修改方法,而它们会得到完全不同的结果。
但是,只有我知道我需要哪种结果,到目前为止计算机不可能替我做出正确的选择。
所以,报告错误并让开发者自己修改,比“代替开发者处理错误”好得多。
5. 而且,即使可以顺利的“自动修复”错误,但是修复的结果可能是你不想要的。
echo "<a href="$url"></a>";
根据你描述的规则,它会被自动修复成
echo "<a href=\"$url\"></a>";
但事实上,我的
$url='"
http://g.cn"';
它已经有一对引号了,我需要把它修复成
echo "<a href=".$url."></a>";
但是,程序按照既定的规则自动修复了我的错误,所以程序顺利执行了,但是结果却不是我想要的。如果代码量非常大,我可能完全不清楚到底是什么地方出现的问题,我可能要花大量的时间才能找到错误的所在,甚至有时候发现不了哪里错了。
但是,如果php报告了错误,那么解决问题还不要30秒钟。