我正在测试一个基于此评论在php文档中找到的php函数: http://www.php.net/manual/en/function.rand.php#108861
<?php
function RandNumber($e) {
for ($i = 0; $i < $e; $i++) {
$rand = $rand . rand(0, 9);
}
return $rand;
}
echo RandNumber(4);
// Outputs a 6 digit random number
?>
我收到错误通知:
未定义的变量:第7行的/var/www/eod.php中的rand
这是第7行:
$rand = $rand . rand(0, 9);
为什么导致此错误,因为函数按预期工作?
答案 0 :(得分:2)
初始化您的$rand
变量以删除此警告:
function RandNumber($e){
$rand="";
for($i=0;$i<$e;$i++){
$rand = $rand.rand(0, 9);
}
return $rand;
}
请注意,您可以简化代码:
function RandNumber($e){
$rand="";
for(;$e-->0;){ // no need for an additional variable
$rand .= rand(0, 9); // addition and assignement with one operator
}
return $rand;
}
答案 1 :(得分:2)
要输出随机的6位数字(如果您需要更大的数字,大于mt_getrandmax()
,此解决方案将失败),只需使用
mt_rand(100000, 999999);
要包含前导零(000123
)的数字,您可以使用my_rand(0, 999999)
和str_pad($number, 6, "0", STR_PAD_LEFT);
的组合
不需要花哨的循环。
答案 2 :(得分:1)
这不是错误..这是一条通知消息..如果你不想出现这个通知你应该在做循环之前定义它:
$rand = '';
for($i=0;$i<$e;$i++){
$rand = $rand . rand(0, 9);
}