У меня возникли проблемы с пониманием этой ошибки.
Вот код:
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;
}
Здесь я пытаюсь отфильтровать некоторые значения из массива give (в данном случае это будет $_POST
), которые начинаются с заданного имени ($dash
), но я хочу отфильтровать из них «id», «module», «action», «configure» или «to_pdf».
Так что я думал, что это будет работать, "продолжить". Поскольку оператор switch не является циклом, оператор continue должен идти в начало цикла (foreach), но, очевидно, этого не происходит. Я все еще получаю имена ключей, которые мне не нужны в массиве.
Я нашел решение, немного изменив код, но мне бы очень хотелось понять, почему это не работает.
«Продолжить» должно отправить меня обратно на foreach !!