WordPress很旧。事实上,它早于PHP引入的PHP7random_int()
. WP之前想要/需要此功能,因此实现了另一种方法。
PHP解释器如何理解我调用的两个函数中的哪一个?
问得好。翻译不明白这一点。因此,如果您有PHP7并将此函数定义为新函数,则会出现错误。这就是为什么。只有在以下情况下,才会加载具有函数定义的文件random_int()
默认情况下不可用。
wp-includes/random_compat/random.php lines 212-214 是
if (!function_exists(\'random_int\')) {
require_once $RandomCompatDIR.\'/random_int.php\';
}
如果您的服务器是PHP7并且是PHP自己的
random_int()
是可调用的,将使用此文件,并且从未包含该文件。
如果您的服务器不是PHP7或PHP自己的服务器random_int()
由于任何原因都不可调用,将包含该文件,并将给出另一个实现。
这项工作已经完成,因此WordPress可以在不同的系统上运行。PHP5和PHP7患者。
这有什么不同?我真的说不出话来。WP使用的文件似乎来自this random_compat
repository, 它还链接到PHP文档(如果您没有PHP自己的实现,建议使用)。
我已经看到了一个快速的区别:PHP的random_int()
尝试使用getrandom(2)
在Linux机器上random_int()
仅用于/dev/urandom
.
如果有疑问,我会使用系统的版本(PHP),而不是软件引入的版本(WP)。但这只是我的观点。