1

我想循环一个变量并在数据库中分配这个变量我使用这个代码

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";    
$size = strlen( $chars );
for( $i = 0; $i < 10; $i++ ) {
    $str = $chars[ rand( 0, $size - 1 ) ];
}

如果我在 for 循环之外使用 $str 它只会给我 1 个随机字符如果我在 for 循环内部使用它会给我随机 10 个字符

如何使用此代码生成随机 10 个字符?

我试图在这样的循环字符串之前定义变量

$str = '';

但也不适合我..

4

3 回答 3

4

每次你$str = $chars[ rand( 0, $size - 1 ) ];都在替换 $str's 的价值。要附加或连接所有生成的字符,请使用.运算符,例如:

$str .= $chars[ rand( 0, $size - 1 ) ];

这与执行以下操作相同:

$str = $str . $chars[ rand( 0, $size - 1 ) ];

文档: http: //php.net/manual/en/language.operators.string.php

于 2013-06-07T00:04:22.037 回答
2

添加 '。' (点)到 '=' 用于字符串连接 - 它为您提供 10 个字符字符串

$str = '';
for( $i = 0; $i < 10; $i++ ) {
    $str .= $chars[ rand( 0, $size - 1 ) ];
}

echo $str;

或者

使用 [] 获取字符数组

for( $i = 0; $i < 10; $i++ ) {
    $str[] = $chars[ rand( 0, $size - 1 ) ];
}

print_r($str);
于 2013-06-07T00:04:45.680 回答
1

在 php 中,您使用以下命令将某些内容附加到字符串.=

$str .= $chars[ rand( 0, $size - 1 ) ];
于 2013-06-07T00:06:38.957 回答