2016-06-27 1 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

関連する問題