我正在尝试识别PHP 代码中的纯函数。
纯函数是关于函数的以下两个陈述都成立的函数:
- 给定相同的参数值,该函数始终评估相同的结果值。函数结果值不能依赖于任何可能随着程序执行或程序的不同执行而改变的隐藏信息或状态,也不能依赖于来自 I/O 设备的任何外部输入。
- 结果的评估不会导致任何语义上可观察的副作用或输出,例如可变对象的突变或输出到 I/O 设备。
(来自维基百科的定义)
是否足以说一个 PHP 函数是纯的当且仅当
- 它的所有参数都按值传递(
&
参数列表中没有) - 它不使用对象成员(
$this
在函数体中没有) - 它不使用全局变量(它不包含
global
在函数体中) - 它不使用超全局变量(它不包含
$_
变量)
这些陈述是真的吗?我错过了任何用例吗?