用户名前缀的随机数组


Random Array of username prefixes

修改我的聊天网站,我想在人们加入时添加随机分类的前缀。对不是PHP代码是: define("ANONYMOUS_PREFIX", "user");输出为:用户 9367 已加入。

这就是我想做的,但我对 php 没有希望。

define("ANONYMOUS_PREFIX", "$array"); 
$array = array(Mrs., Mr., Ms., Prof., Dr., Gen., Rep., Sen., St.);

更不用说让它随机化了。

使用array_rand()

$array = array('Mrs.', 'Mr.', 'Ms.', 'Prof.', 'Dr.', 'Gen.', 'Rep.', 'Sen.', 'St');
$prefix = $array[array_rand($array)];
define ("ANONYMOUS_PREFIX", $prefix);
var_dump(ANONYMOUS_PREFIX);

请注意,只能将标量值分配给常量。

猜你更像是聊天软件的用户,而不是程序员,我建议你简单地用这一行替换定义:

define("ANONYMOUS_PREFIX", array_rand(array_flip(array("Dr", "Mr", "Ms", "Prof")))); 

如果要添加更多前缀,请始终将它们写在括号中,并在前面添加逗号。

常量不能存储需要使用常规变量的数组。对于随机化,请使用函数shuffle()

$array = array(Mrs., Mr., Ms., Prof., Dr., Gen., Rep., Sen., St.);
shuffle($array);
// you can assign the first element to the constant if you need to:
define('PREFIX', $array[0]);

您可以使用 mt_rand() 在前缀数组中查找随机索引,然后定义该前缀。我认为找到一个随机数比随机洗牌数组更快,特别是考虑到这个数组可能会随着时间的推移而变大。

<?php
$prefixes = array(Mrs., Mr., Ms., Prof., Dr., Gen., Rep., Sen., St.);
mt_srand(microtime());
$randval = mt_rand(0,count($prefixes));
$prefix = $prefixes[$randval];
define("ANONYMOUS_PREFIX", $prefix);