我有一个开关功能,我希望能够随机拉出案例:
<?php
function peopleGet($name) {
switch ($name) {
case 'gloria':
echo 'gloria';
break;
case 'benjamin':
echo 'benjamin';
break;
case 'callum':
echo 'callum';
break;
}
}
?>
我仍然需要能够提取特定的变量:
<?php peopleGet('gloria'); ?>
但是,是否可以使用相同的功能来拉随机(不重复)的情况?
答案 0 :(得分:3)
答案是不(而且你真的不应该)因为switch case语句是控制结构而不是数据结构,你会更好改为使用值数组,而不是重新调整单个值,您可以返回多个值
类似的东西:
<?php
function peopleGet($name=null){
$people = array('gloria'=>array('name'=>'Gloria',
'age'=>'29',
'location'=>'usa'),
'benjamin'=>array('name'=>'Benjamin',
'age'=>'39',
'location'=>'uk'),
'callum'=>array('name'=>'Callum',
'age'=>'19',
'location'=>'uk'));
if($name==null){
$keys = array_keys($people);
shuffle($keys);
return $people[$keys[mt_rand(0,count($people)-1)]];
}else{
return $names[$name];
}
}
print_r(peopleGet());//random
print_r(peopleGet('gloria'));//gloria's array
?>
答案 1 :(得分:1)
这是你想要达到的目标吗?
$peopleArray=Array('gloria' => 'gloria',
'benjamin' => 'benjamin',
'callum' => 'callum');
使用以下内容获取明确的价值:$myPerson=$peopleArray['gloria'];
获取随机值:$myPerson=$peopleArray[array_rand($peopleArray)];
注意:array_rand manual - 从数组中选择一个或多个随机条目
答案 2 :(得分:0)
您指的是捕捉未定义案例的default:
条款吗?
switch ($name) {
// Gloria
case 'gloria':
echo 'gloria';
break;
// Benjamin
case 'benjamin':
echo 'benjamin';
break;
// Callum
case 'callum':
echo 'callum';
break;
default:
echo $name; // or whatever that needs to happen if it is an undefined case
break;
}