不带if的字符串echo


String echo without if

我有大约50个字符串。

$rand = rand(0,50);
$name[1] = "Jane";
$name[2] = "Marienne";
...
...
...
$name[50] = "Mary";
echo $name[$rand];

例如,如果$rand=="2",我想回显"Marienne"。但是上面的代码不起作用。我不想使用if语句,因为字符串太多了。你给我什么建议?谢谢

如果您没有像未初始化的$name[0]键那样的"DOH"时刻,那么您发布的代码应该可以工作。

然而,如果你想完全避免这个问题,你可以使用array_randdocs函数来挑选一个(伪)随机数组密钥:

$names = array('Peter', 'Paul', 'John');
echo $names[array_rand($names)];

或者,与其在50中硬编码作为随机范围内的最大值,为什么不试试:

rand(0, count($names)-1);