我有一个开关功能,我希望能够从以下位置随机提取案例:
<?php
function peopleGet($name) {
switch ($name) {
case 'gloria':
echo 'gloria';
break;
case 'benjamin':
echo 'benjamin';
break;
case 'callum':
echo 'callum';
break;
}
}
?>
我仍然需要能够拉动特定的变量:
<?php peopleGet('gloria'); ?>
但是,是否可以使用相同的函数来拉动随机(无重复)情况?
答案是否定的(实际上你不应该),因为 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
?>
这是你想要实现的吗?
$peopleArray=Array('gloria' => 'gloria',
'benjamin' => 'benjamin',
'callum' => 'callum');
通过以下方式获取不同的值: $myPerson=$peopleArray['gloria'];
使用以下命令获取随机值:$myPerson=$peopleArray[array_rand($peopleArray)];
注意:array_rand手动 — 从数组中选择一个或多个随机条目
你指的是捕获尚未定义的案例的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;
}