2017-11-28 2 views
-1
<?php 
function example($role) { 
    if($role == var1]) { 
    return true; 
    } else if(isset($var2) && !empty($var2)) { 
    if($role == $var2) { 
     return true; 
    } else if(isset($var3) && !empty($var3)) { 
     if($role == $var3){ 
     return true; 
     } else { 
     return false; 
     } 
    } 
    } 
} 

$var1$var2$var3はセッション変数です。 $var1は常に設定されているので、if文で直接チェックします。私は$var2$var3が設定されているかどうかを確認するif文、別のを追加しましたので、phpのif文をより良く構造化するには?

$var2は、$var3は時々設定されていません。

基本的には、$var1,$var2,$var3に対して関数のパラメータをチェックする必要があり、パラメータが変数のいずれかと等しい場合、関数は値trueを返す必要があります。

$var2$var3がいつも設定されていないので、私は彼らのためにあまりにもisset()はなく、空を確認する必要があります。私はPHPで新しく、if文を正しく作成できません。

$var2が設定されていないと、$var3はチェックされません。

$var1のパラメータがチェックされ、$var2$var3のいずれかが設定されている場合は、パラメータもチェックする必要があります。

+0

をset'されていませんか?あなたは '$ _SESSION'や' $ _POST'のようないくつかのスーパーグローバルから取りますか? – raina77ow

+0

$ var1、$ var2、$ var3はセッションvaraiblesです – Harry

答えて

-1

あなたは多分機能に直接あなたの変数を渡すと、のようなものにすることができます。 関数の例を($の役割、$ VAR1 = nullを、$ var2の= nullを、$ VAR3 = NULL){...}

ヌルかどうかを確認してください。

0

条件を満たす必要がある部分をまたはで区切ってグループ化します。何かのように:

function example($role){  
    if($role == $var1 || (!empty($var2) && $role == $var2) || (!empty($var3) && $role == $var3)) { 
     return true; 
    }else{ 
     return false; 
    } 
} 

する必要があります。 !emptyissetが設定されていない場合は、チェックする必要はありません。 (例外は5つの値を持っていますemptyは空であるとみなします)

ここでもデータの再構築を検討します。 $var#をすべて配列に格納する場合は、http://php.net/manual/en/function.in-array.phpを使用します。

0

あなたの条件のほとんどがtrueを返しますので、あなたはこのようなあなたのコードと、グループのすべてのスタイルができます:あなたは$のVAR2 `とはどういう意味ですか

<?php 
function example($role) { 
    if(
     (isset($var1) && !empty($var1) && $role == $var1) || 
     (isset($var2) && !empty($var2) && $role == $var2) || 
     (isset($var3) && !empty($var3) && $role == $var3) 
    ) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
関連する問題