到目前为止,我已经了解到PHP缺少逗号运算符(无论好坏,我在这里都不是为了发表意见)。由于我陷入了这样的表达模式:
($tmp = bar(), foo($tmp), $tmp)
- 执行计算并缓存输出
- 使用缓存的值(调用具有给定值的函数)
- 返回缓存的值
我可以用调用一个自定义函数来代替逗号运算符,该函数接受值和lambda并返回值。
但我想知道——也许PHP7带来了一些新功能,使替换更容易,或者允许替换所有形式的逗号运算符表达式?
不完全如此,但由于新的AST:,自PHP7以来,您可以轻松地同时创建和调用lambda函数
(function() { $tmp = bar(); foo($tmp); return $tmp; })();