Php 继续,不要循环开始
我理解这个错误有点困难。 代码如下:Php 继续,不要循环开始,php,logic,Php,Logic,我理解这个错误有点困难。 代码如下: function filter_optionsfordash(array $data,$dash) { $filtered_options = array(); $len = strlen($dash); foreach ($data as $k => $value) { if (substr($k,0,$len) === $dash) { $option_name = trim(str_r
function filter_optionsfordash(array $data,$dash) {
$filtered_options = array();
$len = strlen($dash);
foreach ($data as $k => $value) {
if (substr($k,0,$len) === $dash) {
$option_name = trim(str_replace($dash . '_','',$k));
switch ($option_name) {
case 'displayColumns':
$value = explode(',',$value);
break;
case 'dashletTitle':
$option_name = 'title';
break;
case 'id':
case 'module':
case 'action':
case 'configure':
case 'to_pdf':
continue;
break;
}
$filtered_options[$option_name] = $value;
}
}
return $filtered_options;
}
我在这里试图做的是从给定数组中筛选一些以给定名称($dash
)开头的值(在本例中是$\u POST
),但我想筛选出“id”、“module”、“action”、“configure”或“to\u pdf”这些值
所以我认为“继续”是可行的。由于switch语句不是循环,“continue”应该转到循环的开头(foreach),但显然这不会发生。我仍在获取数组中不需要的密钥名
我已经找到了一个解决方案,通过稍微修改代码,但我真的很想理解为什么这不起作用
“继续”应该会把我送回foreach 说:
continue在循环结构中用于跳过当前循环迭代的其余部分[…]注意:注意,在PHP中,switch语句被认为是一种循环结构,用于continue。表示: continue在循环结构中用于跳过当前循环迭代的其余部分[…]
注意:注意,在PHP中,为了继续,switch语句被视为循环结构。您需要使用continue 2:
function filter_optionsfordash(array $data,$dash) {
$filtered_options = array();
$len = strlen($dash);
foreach ($data as $k => $value) {
if (substr($k,0,$len) === $dash) {
$option_name = trim(str_replace($dash . '_','',$k));
switch ($option_name) {
case 'displayColumns':
$value = explode(',',$value);
break;
case 'dashletTitle':
$option_name = 'title';
break;
case 'id':
case 'module':
case 'action':
case 'configure':
case 'to_pdf':
continue 2;
break;
}
$filtered_options[$option_name] = $value;
}
}
return $filtered_options;
}
您需要改用continue 2:
function filter_optionsfordash(array $data,$dash) {
$filtered_options = array();
$len = strlen($dash);
foreach ($data as $k => $value) {
if (substr($k,0,$len) === $dash) {
$option_name = trim(str_replace($dash . '_','',$k));
switch ($option_name) {
case 'displayColumns':
$value = explode(',',$value);
break;
case 'dashletTitle':
$option_name = 'title';
break;
case 'id':
case 'module':
case 'action':
case 'configure':
case 'to_pdf':
continue 2;
break;
}
$filtered_options[$option_name] = $value;
}
}
return $filtered_options;
}
随机排序顺序并不能完全解决快速向上投票答案的“问题”;-)随机排序顺序并不能完全解决快速向上投票答案的“问题”;-)