2016-03-24 19 views
2

私はWordpressでこれらのコードと混乱しています。混乱が伴う!function_exists()|| !dynamic_sidebar()

これにより、私はfirst-footer-widgetを表示することができます。しかし

<div class="col-lg-6 col-md-6 col-sm-12"> 
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('first-footer-widget-area')) ?> 
</div> 

<div class="col-lg-3 col-md-3 col-sm-6"> 
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('second-footer-widget-area')) ?> 
</div> 

<div class="col-lg-3 col-md-3 col-sm-6"> 
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('third-footer-widget-area')) ?> 
</div> 

私は削除 "!"それはまだ動作しています。

<div class="col-lg-6 col-md-6 col-sm-12"> 
    <?php if (!function_exists('dynamic_sidebar') || dynamic_sidebar('first-footer-widget-area')) ?> 
</div> 

私は混乱します。

答えて

0

!function_exists('dynamic_sidebar')戻り値true関数が存在しない場合は、未知のdynamic_sidebar関数を実行しない場合のみです。

あなたが第2の値から!を削除すると、それだけで(falseある!true)それ(dynamic_sidebar機能)リターンfalseを作る - だから、言い換えれば、dynamic_sidebar機能上の!はちょうどtrueを返します。関数はfalseを返し、逆も同様です。結論として

// EVALUATED AS TRUE IF 'dynamic_sidebar' FUNCTION DOESN'T EXISTS, OR 'dynamic_sidebar' RETURNS FALSE 
// EVALUATED AS FALSE IF 'dynamic_sidebar' FUNCTION EXISTS, AND 'dynamic_sidebar' RETURNS TRUE 
if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('first-footer-widget-area')) 

// EVALUATED AS TRUE IF 'dynamic_sidebar' FUNCTION DOESN'T EXISTS, AND 'dynamic_sidebar' RETURNS TRUE 
// EVALUATED AS FALSE IF 'dynamic_sidebar' FUNCTION EXISTS, AND 'dynamic_sidebar' RETURNS FALSE 
if (!function_exists('dynamic_sidebar') || dynamic_sidebar('first-footer-widget-area')) 

のでdynamic_sidebar関数が存在することを確認してください - この条件は常にあなたがdynamic_sidebar()

から !を削除しても TRUE、として評価されている理由は、おそらくです