2016-11-19 13 views
-1

変数が設定されている場合は新しい名前に渡そうとしていますが、最初の変数が設定されていない場合はPOST変数を取得します。PHP - 変数が設定されていない場合、ポスト変数を取得します

これは私のコードですが、それが動作していない:

if (isset($randombg)) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']) 
}; 

何それと間違っている、または私はこれをどのように修正することができますか?

+0

をしてください読むことができ、それについての詳細を、本当に何が起こっているのかを 'うまくいっていないのですか?いくつかのメッセージやタイプミスがありますか? – sensorario

+0

私のソリューションをチェックしましたか? –

答えて

1

コードに入力ミスがあります。 ) $background = $_POST['bg'])にセミコロン

ますこれは動作するはずがあり:

$defaultbg = '#FFFFFF'; 

if (isset($randombg)) { 
    $background = $randombg;  
} elseif(isset($_POST['bg'])) { 
    $background = $_POST['bg']; 
    }else{ 
     $background = $defaultbg; 
     } 
+1

')'^_^ – sensorario

0

Mauybeの$ randombgがNULLまたは空である(それが設定されていないことが正確に意味はありません)。

この試してみてください:あなたはPHPのの7.0.xを使用している+あなたができる場合は

$background = null == $randombg 
    ? $_POST['bg'] 
    : $randombg; 
+0

のための良いキャッチは、2番目をしないでください。 "なぜこのコードは動作しないのですか"という巨大なソースの大きさは、あまりにも大きいです – Qrchack

+1

なぜこのsytaxはありませんか?読んだほうがはるかに優れていて、1行に書いた方がはるかに短いです。 –

+0

開発者がエラーを読むことができないため、コードが機能しないことがあります。 – sensorario

0

[特集] PHPのの7.0.x +

if ($randombg) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']; 
} 

または短縮構文を次の構文を使用します。

$background = $randombg ?? $_POST['bg']; 

この場合、$backgroundは、設定されている最初の変数から値を取得し、nullではありません。

あなたも、このような何か行うことができます:あなたはあなたがあなたのコード内の構文を持っているあなたのコード

についてPHP RFC: Null Coalesce OperatorPHP: New Features

に読み取ることができる機能について

$background = $randombg ?? $_POST['bg'] ?? 'No background given'; 
// if $randombg and $_POST['bg'] will be not set or null $background will become 'No background given' 

詳しいです。

$background = (isset($randombg)) ? $randombg : $_POST['bg']; 

そして、次のように動作します:あなたはまた、短い構文を使用することができます

if (isset($randombg)) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']) // you have syntax here, delete) 
} 

:以下詳細情報

$background = (condition) ? 'when true' : 'when false'; 

あなたはhere (Shorthand if/else)

関連する問題