使用变量outside for循环语句

时间:2013-06-07 00:01:49

标签: php string for-loop

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

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

如果我在for循环之外使用$ str,它将只给我1个随机字符 如果我使用它indside for循环它将给我随机10个字符

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

我试图在循环字符串之前定义变量,如此

$ str ='';

但也不适合我..

3 个答案:

答案 0 :(得分:4)

每次执行$str = $chars[ rand( 0, $size - 1 ) ];时,您都替换 $str的值。要附加或连接,所有生成的字符都使用.运算符,如:

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

这与执行以下操作相同:

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

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

答案 1 :(得分: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);

答案 2 :(得分:1)

在php中,您使用.=

将某些内容附加到字符串中
$str .= $chars[ rand( 0, $size - 1 ) ];