Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php If-else语句和else-If语句_Php - Fatal编程技术网

Php If-else语句和else-If语句

Php If-else语句和else-If语句,php,Php,PHP中的新功能 此语句有错误吗? 我只想显示如果价格=0,那么是免费的, 否则显示正常价格, 否则,如果折扣价格为空,则不执行任何维护价格操作, 否则有折扣价格,然后显示折扣价格 <?php if($value->price_value == 0 || '' ){ echo "Free"; } else { echo $formatted_price; } else if(empty($discount_price)){

PHP中的新功能
此语句有错误吗?
我只想显示如果价格=0,那么是免费的,
否则显示正常价格,
否则,如果折扣价格为空,则不执行任何维护价格操作,
否则有折扣价格,然后显示折扣价格

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

不知道你想做什么。但以下是基于您上面所写内容的正确语法

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

您可能想尝试以下方法:

<?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";
    }
?>


注意:如果使用php中的
is\u numeric()
函数筛选所有使用的变量,最好在继续执行条件语句之前进行筛选。

您的逻辑不清楚。代码的直接问题是,在
else
条件之后不能有任何内容。您希望/希望在此处计算多少
echo
语句?无需粗鲁。而是回答您需要多少echo。这是一个有效的问题,可以找出你方法中的缺陷。我认为您的伪代码应该是:
那么如果没有折扣…
。在真正的代码中,您不需要
then
。这意味着您只需在
if
之前删除
else
<?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";
    }
?>