修改我的聊天网站,我想在人们加入时添加随机的前缀。不是php代码是:
define("ANONYMOUS_PREFIX", "user");
输出为:user9367加入。
这是我想要做的,但我对 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);