【发布时间】:2021-06-06 11:21:36
【问题描述】:
在 PHP 中有什么方法可以在运行时获取函数的校验和吗?
我想将它用于处理两个变量比较的函数,我会将变量 ids 和函数校验和存储在数据库中,这样就不会在每次运行脚本时重复昂贵的比较过程, 仅当比较两个变量的函数或任何变量发生变化时。
【问题讨论】:
-
而不是 "checksum of the function"(无论你的意思是什么),存储函数的版本并将其与两个值一起传递以与功能。功能代码应该知道它的当前版本。每次以改变其行为或结果的方式修改函数代码时,都必须增加它。这种方法可确保在您升级到不同版本的 PHP 或重构代码时“函数的校验和”不会改变。
-
通过校验函数,我的意思是获取函数的整个主体(代码或其他),并在其上运行
md5(或任何其他字符串散列函数),这应该改变,每当函数主体中的某些内容发生变化时。 (即为其添加新空间或其他东西)。您提出的是容易出错的imo,因为如果开发人员在更改函数时忘记更新函数的版本,我的脚本将不会重新比较这两个数组。校验和方法减少了(不幸的是,没有完全消除)这个问题