我试图打印出像&#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>
答案 0 :(得分:1)
您的函数正在回显一个值而不是返回它。
function random(){
echo rand(1,100);
}
因此...
$prices[$i]= random();
这不会奏效。
对你的功能这样做,你应该得到一些东西。
function random(){
return rand(1,100);
}
此外,您的回音缺少括号。使用此:
echo "<br>{$prices[$i]} = ".$taxPrices[$i];
答案 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提到的错误还有更多可以做得更好的事情。
请参阅以下代码:
<?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