我正在尝试在PHP代码中识别pure functions。
纯函数是关于函数的这两个语句都保持的函数:
- 在给定相同参数值的情况下,函数始终评估相同的结果值。函数结果值不能依赖于程序执行过程中或程序的不同执行之间可能发生变化的任何隐藏信息或状态,也不依赖于I / O设备的任何外部输入。
- 评估结果不会导致任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备。
(来自Wikipedia的定义)
当且仅当
时,PHP函数是纯粹的就足够了
- 所有参数都按值传递(参数列表中没有
&
)
- 它不使用对象成员(函数体中没有
$this
)
- 它不使用全局变量(它在函数体中不包含
global
)
- 它不使用superglobals(它不包含
$_
个变量)
这些陈述是真的吗?
我错过了任何用例吗?