我想要一个包含if语句的变量,在WordPress中执行此操作但似乎无法使其工作。
这是我的代码:
<?php $priceperpost= {
if ( $linecount > 15)
{
echo "109";
}
elseif ($linecount > 30) {
echo "89";
}
elseif ($linecount > 100) {
echo "Please Call";
}
else {
echo "129";
}
}
?>
答案 0 :(得分:2)
这是一个如何做一行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;
答案 1 :(得分: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
}
}
?>
答案 2 :(得分: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;
}
一般情况下,如果会有更多elseif
s,则往往会有点难以阅读。在这些情况下,我经常更喜欢switch
声明以便于阅读(但是对于此,观点似乎有所不同)。