2016-06-27 66 views
1

我有这个语句,包含在一个php文件中。随着它执行崩溃。在声明前后没有任何执行。PHP | Switch语句崩溃执行

switch ($type) { 
    case "contact_page" : 
     $subject = "Вопрос со страницы Контакты"; 
     $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); 
     break; 
    case "call_ask" : 
     $subject = "Просьба позвонить"; 
     break; 
    case "calculator" : 
     $subject = "Калькулятор"; 
     $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); 
     break; 
    default : 
     $output = json_encode(['type' => 'error', 'text' => 'Запрос из неверного типа формы.']); 
     die($output); 
} 

当我用if...else语句替换这个语句时,所有执行都很好。 找不到任何错误。

+4

所以开始注释出各这些线和图哪一个会导致崩溃。没有什么看起来不对。 –

+0

@KA_lin:毫无意义+无用。默认是该交换机中的最后一个,因此不需要中断,并且在任何地方都不需要中断,所以中断的存在/不存在不会导致崩溃。 –

+0

你是如何调用这个函数的? var_dump($ type);'?的输出是什么? –

回答

2

PHP版本不支持新的数组表示法(从我所知道的5.4+)。

使用在default情况:

$output = json_encode(array('type' => 'error', 'text' => 'Запрос из неверного типа формы.')); 
+2

是的,这是问题所在。 感谢您的关注。真的,我忘记了这一点。 –

+0

这很有趣,人们仍然使用旧版本的PHP。例如,我总是使用PHP的最新版本(现在的版本7),我不在乎是否会有例外,我会解决它。 – num8er

0

升级PHP至> 5.4

或更新代码:

json_encode(['type' => 'error', 'text' => 'Запрос из неверного типа формы.']); 

json_encode(array('type' => 'error', 'text' => 'Запрос из неверного типа формы.')); 
+0

不幸的是,我无法升级php并且没有权限。而且,是的,这是问题所在。 –

+0

哦...那些管理员...(: – num8er