php 不同年龄和会员的折扣

php discounts for different ages and members

我正在尝试创建一个程序来计算不同年龄和会员的折扣金额。 12 岁以下的人可以享受 50% 的折扣,如果他们是会员,则可以额外享受 10% 的折扣。 18 岁以下或 65 岁以上的人可以享受 25% 的折扣,如果他们是会员,则可以额外享受 10% 的折扣。 我的程序似乎只有在 12 岁以下时才有效,有人对如何修复有任何建议吗(对我来说放轻松,我是编程新手)。

$ticketPrice = 25;
$age = 25;
$membership = 'Yes';
$finalPrice;
$discount;
$memberDis;



if($age < 12) {

    $finalPrice = 25 / 2;

} else if($age < 18) {

$discount = 25 * 0.25;
$finalPrice = 25 - $discount;

} else if($age < 65) {

    $discount = 25 * 0.25;
    $finalPrice = 25 - $discount;
} else if($membership = 'Yes') {

    $discount = $finalPrice * .10;
    $memberDis = $dicount * 100;

}

echo "<br />";
echo "<h1>Ticket Example</h1>";
echo 'Inital Ticket Price: '."&pound".$ticketPrice;
echo "<br />";
echo "Age: ".$age;
echo "<br />";
echo "Member: ".$membership;
echo "<br />";
echo "Final Ticket Price: "."&pound".$finalPrice;
  • 您应该使用变量 $ticketPrice 而不是在 if ..else.
  • 中硬编码它的值
  • 在你的条件语句中,首先确定 $discount
  • 然后在条件之外,计算最终价格
  • 比较运算符是 == 而不是 =.
  • 会员条件检查应移出并与年龄检查分开。

尝试

 // Initialize discount to 0
 $discount = 0;
 $finalPrice = $ticketPrice;

 if($age < 12) {

    // if age is less than 12 then 50% discount
    $discount = 50;

 } elseif($age < 18 || $age > 65) {

    // 25% discount for age < 18 or > 65
    $discount = 25;
 }

 if ($membership == 'Yes') {
    // additional 10% discount on membership
    $discount += 10;
 }


// now calculate the final price after removing discount
$finalPrice -= ($finalPrice*$discount/100);

您可以看到代码的流程图,以便于理解您在做什么以及为什么它不起作用。

如您所见,如果年龄大于或等于 65 岁,则适用会员折扣,但您应该看到 ====== 运算符之间的区别。

根据你的代码结构,你应该有:

<?php 

$ticketPrice = 25;
$age = 25;
$membership = 'Yes';
$finalPrice;
$discount;
$memberDis;



if($age < 12) {

    $finalPrice = 25 / 2;

} else if($age < 18) {

    $discount = 25 * 0.25;
    $finalPrice = 25 - $discount;

} else if($age < 65) {

    $discount = 25 * 0.25;
    $finalPrice = 25 - $discount;

} 

if($membership === 'Yes') {

    $discount = $finalPrice * .10;
    $finalPrice -= $discount;

}

echo "<br />";
echo "<h1>Ticket Example</h1>";
echo 'Inital Ticket Price: '."&pound".$ticketPrice;
echo "<br />";
echo "Age: ".$age;
echo "<br />";
echo "Member: ".$membership;
echo "<br />";
echo "Final Ticket Price: "."&pound".$finalPrice;