我试图打印出像#34这样的东西;这是带税的价格" +随机数和税

时间:2016-11-14 22:43:26

标签: php

我试图打印出像&#34这样的东西;这是带税的价格" +随机数和税。

<!DOCTYPE html>
<html>
<body>

<?php

$tax=0.06;

function random(){
    echo rand(1,100);
}

$prices = array();
$taxPrices = array();

for ($i =0; $i< 5; $i++) {
    $prices[$i]= random();
}

echo "The prices with the taxes";

for ($i=0; $i<count($prices); $i++) {

    $taxPrices[$i]=$prices[$i] * $tax;
    echo "<br>$prices[$i] = ".$taxPrices[$i];

}

?>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

您的函数正在回显一个值而不是返回它。

function random(){
    echo rand(1,100);
}

因此...

$prices[$i]= random();

这不会奏效。

对你的功能这样做,你应该得到一些东西。

function random(){
    return rand(1,100);
}

此外,您的回音缺少括号。使用此:

echo "<br>{$prices[$i]} = ".$taxPrices[$i];

看看:http://ideone.com/nmbcqG

答案 1 :(得分:1)

您可以使用更多面向对象的方法。在这个例子中,我们有一个常量来声明税额和一个常量来声明货币前缀。有两种方法:每次运行createPrice()方法时,都会产生随机价格;每次我们运行getPrices()方法时,它都会输出所有价格 加税。

让我们来看看我们的课程(或在3v4l.org查看完整的工作版本)

class Prices {
    CONST TAX = 0.6;
    CONST PREFIX = '£';

    private $TaxPrices = [];

    public function createPrice() {
        $this->TaxPrices[] = rand(1,100);
        return $this;
    }

    public function getPrices() {
        foreach($this->TaxPrices as $_price) {
            echo self::PREFIX . $_price * self::TAX . '.00';
        }
    }
}

我们现在可以实例化这个类并使用如下对象:

$p = new Prices();
for($i = 0; $i <= 5; $i++) {
    $p->createPrice();
}
echo 'This is the prices with tax:';
$p->getPrices();

答案 2 :(得分:0)

尽管Phiter提到的错误还有更多可以做得更好的事情。

  1. 实际上不需要为rand(0,100)
  2. 创建函数
  3. 除非值改变,否则不应将count()或任何其他函数放在for循环的第二个参数中。计数值在您的情况下不会改变,因此可以在第一个参数中将其声明为外部变量。见例。
  4. 含税价格相当于1 + $ tax =&gt; 1.06这是106%。例如,当你有100号时,价格+税6%将是106所以100 *(1 + 0.06)是正确的等值。
  5. 如果根据PSR规则格式化代码,则更具可读性。
  6. 请参阅以下代码:

    <?php
    
    $tax = 0.06;
    $prices = [];
    $taxPrices = [];
    
    for ($i = 0; $i < 5; ++$i) {
        $prices[$i] = rand(1, 100);
    }
    
    echo "The prices with the taxes: <br>";
    
    for ($i = 0, $count = count($prices); $i < $count; ++$i) {
        $taxPrices[$i] = $prices[$i] * (1 + $tax);
        echo "$prices[$i] = $taxPrices[$i] <br>";
    }
    

    示例输出:

    The prices with the taxes: 
    54 = 57.24 
    60 = 63.6 
    81 = 85.86 
    23 = 24.38 
    68 = 72.08