2017-12-14 20 views
-2

PHPの新機能
この文から何か誤りがありますか?私は、割引価格の空は何もしない場合は、その後、他の
を通常の価格を表示するだけで、価格= 0が、その後自由た場合に表示したい他の

は、価格、他
割引価格、ディスプレイの割引価格を持っているを維持します。else文とelse if文

<?php 
    if($value->price_value == 0 || ''){ 
     echo "Free"; 
    } else { 
     echo $formatted_price; 
    } else if(empty($discount_price)){ 
     echo ''; 
    }else{ 
     echo $discount_price; 
    } 
?> 

$discount_priceは来るから:

$value->price_value * $value->discount_percent_amount ; 
    echo $discount_price ; 
+1

ロジックが不明です。あなたのコードに直面する問題は、 'else'条件の後に何も置くことができないということです。 –

+3

いくつの 'echo'文がここで評価されると思っていますか? –

+0

無礼にする必要はありません。あなたが望むエコーを何回返信しますか。これは、あなたのアプローチの欠陥を追跡できる有効な質問です。私はあなたの擬似コードは次のようにすべきだと思います。実際のコードでは、 'then'は必要ありません。つまり、 'if'の前に' else'を削除するだけです。 – jh1711

答えて

0

ないあなたがやろうとしているか確認してください。しかし、ここであなたが

<?php 
     if($value->price_value == 0 || $value->price_value == ''){ 
      echo "Free"; 
     } else { 
      echo $formatted_price; 
     } 
     if(empty($discount_price)){ 
      echo ''; 
     }else{ 
      echo $discount_price; 
     } 
?> 
0

の上に書かれたものについて正しい構文ベースは、あなたがこれをしようとする場合があります:

<?php 
    // assuming $value->price_value is a numeric 

    if($value->price_value > 0){ # check first if price greater than 0 

     if ($discount_percent_amount > 0) { # discounted percent amount is greater than 0 
      // calculate the discounted price 
      echo $value->price_value * $value->discount_percent_amount ; 
     }else{ # display product price 
      echo $value->price_value; 
     } 
    }else{ # free product 
     echo "Free"; 
    } 
?> 

注:is_numeric()を使用して数値場合は、すべて使用する変数をフィルタリングする方が良いだろう条件文に進む前にphpで機能します。