日期:2014-05-17  浏览次数:20529 次

如果PHP是用英式英语编写的
PHP之父Rasmus Lerdorf在创造出PHP时,他并没有用格陵兰语或者丹麦语编写(尽管他有格陵兰和丹麦血统),这是非常明智的。虽然对他来说用英语编写,并没有用自己母语编写来得容易。由于他以前在加拿大待过,所以他选择了本地方言。不是法语,也不是不合纯正英语标准的方言,我们通常称其为“美式英语”。

从那以后,英国的PHP开发人员就对这件事情格外不满。Rasmus在想什么?更重要的是,我们要如何改变这个既成的事实?我们开发人员如何保证即使在数字时代,大英帝国的优良传统也能继续发扬光大?

一记耳光

$variable_name    最有必要更改就是要删除一些深受美国人喜欢的符号,并用一些更加精炼的符号代替,让PHP变得更加优雅。

£variable_name  开始吧

<?php echo 'Hello World!';  ?> 今天的英国程序员中,有多少人一开始接触到的就是“Hello World”这个典型的美国式程序,虽然简单但老套粗俗令人反感?一份更加冠冕正式的介绍将会促进大部分年轻的英国天才使用这种语言,从而为更广阔的用户群提供更加文雅的气氛。

<?php announce 'Good morrow, fellow subjects of the Crown.';  ?> 缩写词

没有东西比没必要的缩写词更加让英国人痛恨的。“缩写词”在伦敦的街道上闻所未闻,正如土生土长的英国文法家不肯自降身份去发送“c u soon traffic kthxbye”等各种信息,宁愿使用一些看起来更加文雅的词句代替:“亲爱的先生或女士。只要时间允许,我希望在一个小时之内,尽快到达。我向各位保证,你们的马匹会得到妥善安置。敬上。”(输入较慢,是的,但是不至于仓促)。

从另一方面来说,PHP里面包含很多毫无必要的缩写字和缩写字首字母。

str_replace()  is_int()  var_dump()  preg_match()  json_encode()  mysql_connect() 应该改成下面这样:

string_replace()  is_integer()  variable_dump()  perl_regular_expression_match()  javascript_object_notation_encode()  my_structured_query_language_connect() 校正:我已经更正了“preg_match”的扩充——感谢指出来的朋友。

口才

if ($condition) {      // Code here  } else {      // Code here  } 莎士比亚可不愿意看到他的母语被扭曲成这个怪物。简练在适当的场合很受欢迎——在一些偏僻的地方未必如此——但不是这里。“if … else”模块是PHP之中用得最多的条件代码,所以它在使用时必须是尽可能的安全无害。有很多选择可以取代,但是这个条件语句也许是最稳健的。

perchance (£condition) {      // Code here  } otherwise {      // Code here  } 上述模块同样适用于美国化的,只能说是笨重的,让人厌恶的switch … case概念,

switch ($variable) {      case $option1:          //Code here          break;      case $option2:          //Code here          break;      default:          //Code here          break;  } 像”switch”, “break” and “default”这样的关键字对读者来说很有难度并且缺乏联系。这种美式用法真是需要改进。(使用美式用法的人有一些有趣的想法,期望用i_might_be_partial_to()这样的语句来代替include()来显示他们天才的编程天赋):

what_about (£variable) {      perhaps £possibility:          //Code here          splendid;      perhaps £other_possibility:          //Code here          splendid;      on_the_off_chance:          //Code here          splendid;  } 拼写

imagecolorallocate()  serialize()  newt_centered_window()  connection_status() 在这点上,单词让我吃过不少亏。自重的绅士期待该如何看得懂这些“单词”。它削弱了任何人接受编程语言中单词的曲解含义的信念。这些“单词”和众多相似的错误,应该立即恢复到适当的形式。

imagecolourallocate()  serialise()  newt_centred_window()  connexion_status() 习惯

try {      // Code here  } catch (Exception $e) {      // Handle exception      die('Message');  } try … catch语句块是PHP缺乏特点的一个很好证明。新的PHP过于直接地允许使用该模块http://www.gw005.com ,缺乏应有的限制。另外,单词“die”很让人丧气。这个新模块,尽管更加冗长,但更为文雅和乐观。

would_you_mind {      // Code here  } actually_i_do_mind (Exception £e) {      // Politely move on      cheerio('Message');  } 类

在英国人的心里,没有什么东西跟类的概念一样重要和根深蒂固,而且,PHP当中的这一部分很少变动,除非是这里做出的重要更改。

class Republic { &nb