-2

私のphpファイル内には、次のステートメントがあります。

if($_POST['married'] === true) $married = 'yup' else $married = 'nop';

しかし、コメントしないと、php の結果ページが空になります。それは実際にクラッシュします。私は別の場所からこの PHP に POST を実行しています。POST 値には「既婚」の値があります。それは確かに空です (true または false ではありません) が、これはそれとは何の関係もありません。私もこの方法で試しました:

if($_POST['married'] === '') $married = 'yup' else $married = 'nop';

同じ結果です。空白ページ。構文に何か問題がありますか? 私の問題が見えません。私を助けてください。

4

9 に答える 9

3

if正しく使用していません。

if($_POST['married'] == true)
{
    $married = 'yup';
}
else
{
    $married = 'nop';
}

===すべてを文字列として自動的に投稿するため、POST にも使用できません。===コンパレータはデータ型とコンテンツを比較します。

于 2013-10-11T10:32:46.463 に答える
2

セミコロンバディ!!

if($_POST['married'] === '')  $married = 'yup'; else $married = 'nop';
于 2013-10-11T10:32:58.483 に答える
2

「yup」のすぐ後ろにセミコロンを入れるのを忘れています。可も知れません

 if($_POST['married'] === true) $married = 'yup'; else $married = 'nop';

または、oneliner を使用する場合は、次のようにします。

 ($_POST['married']===true)?($married = 'yup'):($married = 'nop');
于 2013-10-11T10:33:51.130 に答える
1

セミコロンがないため、ページがクラッシュしています。

if()ステートメントではなく節であるため、セミコロンは必要ありません。 $married = 'yup'セミコロン (;) で終了する必要があるステートメントです。

于 2013-10-11T10:41:46.377 に答える
1

if ステートメント内のセミコロンが抜けていて、$_POST 変数が設定されているかどうかを確認しようとしています

if(isset($_POST['married']) === true) 
  $married = 'yup';//Here you missed the semicolon
else 
  $married = 'nop';
于 2013-10-11T10:32:12.083 に答える
1

私はshow_errors = falseそれが静かに爆撃していると仮定していますか?その場合 (開発中) は、必ずエラー報告をオンにしてください。

そうは言っても、使用する前に常に$_POST/$_GET値を確認する必要があります。例えば

$married = isset($_POST['married']) && ((bool)$_POST['married'])
         ? 'yup'
         : 'nop';
于 2013-10-11T10:32:40.350 に答える
1

後にセミコロンを追加し、値が設定されているかどうかを判断するために$married = 'yup'使用します。isset$_POST

if(isset($_POST['married']) && $_POST['married'] == true)
    $married = 'yup';
else
    $married = 'nop';
于 2013-10-11T10:32:51.190 に答える
1

空の演算子はあなたを助けます:

if(!empty($_POST['married'])) {
  $married = 'yup';
}
else {
  $married = 'nop';
}
于 2013-10-11T10:33:26.747 に答える