2011-01-12 11 views
0

私はこのPHPコードを持っています(get_optionはWordpress関数です)。PHP - このコードを短くする

<?php $hahaha = get_option('hahaha'); 
    if(empty($hahaha)) { 
     echo 'false'; 
    } 
    else { 
     echo 'true'; 
    } 
?> 

コードは私にはラメに見える、のような、それは短くするの方法があります(私の想像は;)):

<?php $hahaha = get_option('hahaha'); 
if($hahaha): 'true' // 'false' 
?> 

答えて

3
$hahaha = get_option('hahaha'); 
echo $hahaha ? 'true' : 'false'; 

変数は間違いなくあるので、emptyの必要は、ありませんセット。純粋なブール比較はうまくいきます。あなたは後に他の何かのための変数を必要としない場合

、あなたにもそれをスキップすることができます

echo get_option('hahaha') ? 'true' : 'false'; 
4

あなたは三項演算子を使用することができますが、私はそれを読みやすくするために多くの処理を行いわからない:

echo (empty($hahaha) ? 'false' : 'true'); 
+0

なぜ条件演算子がそんなに悪意を持っているのかわかりません。あなたが投稿したものは、if文と同じように私にはわかりやすいものです。はるかに複雑な表現で悪用されると、読みやすさにだけ有害です。 –

+0

@ウィル:どちらも*もっと*読みやすくすることはできません。 –

1
echo empty($hahaha)?'false':'true'; 
0
echo empty($hahaha = get_option('hahaha')) ? 'false' : 'true'; 
+1

これは無効なコードです。 'empty'は言語構造であり、式では使用できません。さらに、 'empty'は' == false'と全く同じですが、設定されていない変数を通知しないので、ここでは役に立たないのです。 'echo!get_option( 'hahaha')? ... 'は同じことをしていたでしょう(間違いなく)。 – netcoder

-1
<?php $hahaha = get_option('hahaha'); 
echo (isset($hahaha)) ? 'true': 'false'; 
+3

'get_option'が' null'を返さない限り、これは常にtrueと評価されます。 'empty($ a)'は '$ a == false'に似ていて、' isset($ a) 'は' $ a!== null'に似ています。それ以外は 'empty'と' isset'の両方が通知を吐き出しません。 '== false'を知るには、[型比較表](http://php.net/manual/en/types.comparisons.php)を参照してください。 – netcoder

0

これが表示されます0または1

$options = get_options(...);

echo empty($options); または echo !empty($options);

関連する問題