【问题标题】:Extending PHP syntax with extensions?用扩展扩展 PHP 语法?
【发布时间】:2014-01-15 18:51:57
【问题描述】:

我试图将我在 Scala 和 Haskell 等语言中学到的一些东西引入 PHP 并进行试验。举一个具体的例子,我想扩展 PHP 语法,使其能够执行以下操作:

array_map( _ + 1, [1,2,3]) // returns [2,3,4]

据我了解,“扩展 PHP 语言”意味着两件事:

  • 用 C 语言编写扩展并将其作为 php.ini extension
  • 扩展用 C 编写的语言(解析器)本身(Zend 引擎?)

我想我想要第二个项目,但我看到像 xdebug 这样的东西(对我来说)几乎深入研究了 PHP 内部。我有点希望也许我可以扩展 PHP 语法而不需要与它的解析器搏斗?

【问题讨论】:

  • 只是好奇。 array_map( _ + 1, [1,2,3]) 应该做什么?
  • 在数组@AmalMurali 上映射函数,如function($x){return $x+1;}
  • @Cthulhu:我明白了。 _ 是什么意思?每个数组元素?
  • 不完全 - 只是缺少价值。所以它变成了一个函数,它接受一个值并为它返回结果@AmalMurali
  • 不,这是不可能的。您不能从扩展中进行语法更改。

标签: php xdebug php-internals


【解决方案1】:

要修改 PHP 的语法,您需要修改它的解析器。这不是您可以通过扩展完成的事情。 Xdebug 可能会深入研究引擎,但它只读取信息。

【讨论】:

    猜你喜欢
    • 2020-02-24
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2019-04-16
    相关资源
    最近更新 更多