我的任务是学习PHP,但有很多东西我不明白。例如,“变量函数”的概念不是我在其他任何地方看到的。还有许多其他示例,但为简洁起见,我找到了 PHPWTF,其中包含许多 PHP 特质的示例。
我使用过的大多数其他语言要么有正式规范(例如,Haskell 2010),要么至少有一篇关于其形式语义的研究论文(例如,用于 Javascript 的 this)。但是,我找不到任何可与 PHP 相媲美的东西。
有一个官方的“语言参考”。但是,它非常不正式,读起来像 wiki,并且缺少整个部分(例如,语法部分根本没有定义语法)。证实了我的怀疑,这家伙告诉我没有官方规范,甚至没有定义的语法。
维基百科有一篇关于“PHP 语法和语义”的文章,但它只涉及语法,几乎没有提到语义。
我在 PHP 上找到的一篇论文是这篇关于其赋值语义的论文。这是该语言的一个非常小的片段,如果没有一些上下文,可能对我没有多大用处。还有一篇关于 'SaferPHP' 的论文,它可能必须与 PHP 的某些定义一起使用,尽管我看不到任何内容。
解释器/编译器提供语义,所以我想看看这些。然而,Zend 源代码令人生畏(尽管它确实提供了有用的测试用例),HipHop 运行到 270 万个 LoC。(我发现人们投入巨大的精力为一种语言编写编译器而从未编写过规范之类的东西,这让我感到惊讶。)
我想看看 PHP 的类型系统以获得指导,就像 TypeScript 为 JavaScript 提供一些指导一样。我在 Hack 上发现了这些诱人的幻灯片,Hack是 PHP 的一个可选类型系统。然而,这只是幻灯片,目前该项目似乎是 Facebook 的内部项目。
有没有人知道比这些穷人的语义更好的东西?还是每个人都只是“以身作则”?