gpt4 book ai didi

php - 即使将 return as float 设置为 true,PHP 函数 microtime 能否返回一个整数?

转载 作者:可可西里 更新时间:2023-11-01 00:55:21 25 4
gpt4 key购买 nike

我网站的一位用户前几天报告了一个错误,所以我查看了日志并进行了追踪。错误是:

Undefined offset: 1

导致此错误的相关代码是:

$parts = explode('.', microtime(true));
$nonce = base_convert($parts[1], 10, 36);

所以 $parts[1] 基本上是未定义的。这会不会是因为当调用 microtime 时恰好它是一个精确的秒,所以它返回一个没有任何小数位的 int?

最佳答案

快速测试可以证实您的假设:

<?php

while (true) {
$microtime = microtime(true);

$tmp = explode('.', $microtime, 2);

if (sizeof($tmp) === 1) {
var_dump($microtime);
break;
}
}

打印

float(1508171125)

在我的系统上。所以是的,microtime可以返回一个“整数”。

如果您考虑一下,这是有道理的,整数不需要逗号分隔符。

为了创建 nonce 值,我建议使用 random_bytes() (如果您使用的是 PHP7)或 openssl_random_pseudo_bytes()这比 microtime 安全多了.

关于php - 即使将 return as float 设置为 true,PHP 函数 microtime 能否返回一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46774848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com