-5

WordPressでこれを行うifステートメントを含む変数が必要ですが、動作させることができないようです。

これが私のコードです:

<?php $priceperpost= {
   if ( $linecount > 15) 
{ 
   echo "109";
}
elseif ($linecount > 30) {
   echo "89";
}
elseif ($linecount > 100) {
   echo "Please Call";
}
else {
   echo "129";
}  
}
?>
4

3 に答える 3

2

1 行の if ステートメントを実行する方法の例を次に示します。必要な効果を得るには、それらをネストする必要があります。基本的にこのコードでは、x が 1 の場合、$value には値 2 が割り当てられます。それ以外の場合は、値 3 が取得されます。

$x = 1;
$value = ($x == 1 ? 2 : 3);
echo $value;

出力: 2

これは以下と同等です:

$x = 1;
if ($x == 1) {
    $value = 2;
} else {
    $value = 3;
}
echo $value;
于 2012-12-30T23:59:44.303 に答える
2

画面に直接出力するのではなく、その値を割り当てようとしていると仮定します。

<?php
  $priceperpost = "129"; // default
  if ($linecount > 100) {
    $priceperpost = "Please call"; // highest price break value first
  } elseif ($linecount > 30) {
    $priceperpost = "89";
  } elseif ($linecount > 15) {
    $priceperpost = "109"; // lowest price break value last
  }
 ?>

または、もう少しコンパクトで柔軟なもの - ファイルまたはデータベースに値を保存し、そのデータから配列を生成することができます。新しい値下げ値に対して新しい elseif を記述する必要はありません。

<?php
  $priceArray = array( // insert price break values in descending order
    100 => "Please call",
    30 => "89",
    15 => "109",
    0 => "129",
  );

  foreach ($priceArray as $breakValue => $price) {
    if ($linecount > $breakValue) {
      $priceperpost = $price;
      break; // found the price break, so we can exit the loop here
    }
  }
?>
于 2012-12-31T00:06:13.537 に答える
1

あなたが提供した例では、最初ifまたはあなただけelseがヒットするため、次のようにします。

switch (true) {
    case $linecount > 100:
        $priceperpost = "Please Call";
        break;

    case $linecount > 30:
        $priceperpost = 89;
        break;

    case $linecount > 15:
        $priceperpost = 109;
        break;  

    default:
        $priceperpost = 129;
        break;
}

一般に、elseifs が増えると、少し読みにくくなる傾向があります。このような場合、読みやすさのためにステートメントを好むことがよくありswitchます (ただし、これについては意見が分かれているようです)。

デモ: http://codepad.viper-7.com/UnztIT

于 2012-12-31T00:07:01.783 に答える