我被赋予学习PHP的任务,但有许多事情我不理解。例如,“可变函数”概念 是我在其他地方没有见过的。还有很多其他的例子,但为了简洁起见,我找到了PHPWTF,其中有许多PHP的怪异之处的例子。
我使用过的大多数其他语言都有正式规范(例如Haskell 2010)或至少有关于它们形式语义的研究论文(例如JavaScript的这篇文章)。然而,我找不到任何与PHP相媲美的东西。
我使用过的大多数其他语言都有正式规范(例如Haskell 2010)或至少有关于它们形式语义的研究论文(例如JavaScript的这篇文章)。然而,我找不到任何与PHP相媲美的东西。
这里有一个官方的语言参考。但是,这个参考非常不正式,读起来像维基百科,并且缺少整个部分(例如,语法部分根本没有定义语法)。正如我所怀疑的那样,这个人告诉我没有官方规范,甚至没有定义语法。
维基百科上有一篇关于"PHP语法和语义", 但它只涉及语法,几乎不提到语义。
我找到了一篇关于PHP的论文这篇关于其赋值语义的论文。这只是该语言的一个非常小的片段,如果没有一些上下文可能对我没有多大用处。还有这篇关于'SaferPHP'的论文, 可能必须使用某种定义的PHP才能工作,尽管我看不出来。
解释器/编译器提供语义,所以我想看看它们。然而,Zend源代码令人生畏(虽然它提供了有用的测试用例),而HipHop达到了270万行代码。(我觉得很惊奇,人们投入了巨大的精力来为一种语言编写编译器,却从未像规范那样编写过任何东西。)
我考虑查看PHP的类型系统,类似于TypeScript为JavaScript提供了一些指导。我在这里找到了这些诱人的幻灯片, 它们介绍了一个可选的PHP类型系统:Hack。不过,它只是幻灯片,该项目目前似乎是Facebook内部的。
是否有比这些简陋的语义更好的东西?或者每个人都只是“通过示例学习”?