WordPress定义的函数random_int()
和PHP内置函数有什么区别random_int()
?
另外,如果有所不同,PHP解释器如何理解我正在调用的两个函数中的哪个?
WordPress定义的函数random_int()
和PHP内置函数有什么区别random_int()
?
另外,如果有所不同,PHP解释器如何理解我正在调用的两个函数中的哪个?
Answers:
WordPress是旧的。实际上,它比PHP所引入的PHP7更旧random_int()
。WP之前曾希望/需要此功能,因此实现了另一种方法。
PHP解释器如何理解我正在调用的两个函数中的哪个?
好问题。口译员不理解这一点。因此,如果您拥有PHP7并定义了这个新函数,则会收到错误消息。这就是为什么。具有功能定义的文件仅在random_int()
默认情况下不可用时才加载。
wp-includes / random_compat / random.php第212-214行是
if (!function_exists('random_int')) {
require_once $RandomCompatDIR.'/random_int.php';
}
因此,如果您的服务器是PHP7,而PHP自己的服务器是random_int()
可调用的,则使用该服务器,并且永远不会包含该文件。
如果您的服务器不是PHP7或random_int()
由于任何原因无法调用PHP自己的服务器,则会包含该文件并提供另一个实现。
这样就完成了,因此WordPress可以在不同的系统上运行。那些使用PHP5和那些使用PHP7。
有什么不同?我真的不能说出来。WP使用的文件似乎来自此random_compat
存储库,该存储库也与PHP文档链接(如果您没有PHP自己的实现,则建议使用)。
我已经看到一个快速的区别:PHP random_int()
尝试getrandom(2)
在Linux计算机上使用,而compat random_int()
仅使用/dev/urandom
。
如有疑问,我将使用系统的版本(PHP)而不是软件(WP)引入的版本。但这只是我的意见。
random_int_custom()
例如)以使其可用。最后一条评论的意思是:它是这样工作的(而不是使用系统功能而不是您自己的功能),并且我不建议您花更多的