Prova detta istället för "fullösningen":
if (intval($price) == $price) {
// $price är heltal
}
Angående din fråga så har jag inte en clue.
6 svar · 1 618 visningar · startad av Web-Tor
Jag har en kundvagn. I kundvagnsklassen har jag en funktion som returnerar totalpriset enligt följande:
<?
function showTotal($d){
foreach ($_SESSION['cart'] as $item => $p)
$price += $_SESSION['cart'][$item]['totalPrice'];
// ** Rabatt vid förskottbetalning
if ($d){
$price *= 0.9
return $price;
}
?>
För att få priser i rätt format använder jag en annan funktion på andra ställen på sidan (se den här tråden).
<?
function showPrice($price, $d){
// ** Rabatt vid förskottbetalning
$f = 0.9;
// ** Räknar ut förskottspris
if ($d)
$price*=$f;
// ** Rätt antal decimaler
if (ereg("\\.",$price))
$price = number_format($price, 2);
return $price;
}
?>
Nu vill jag använda anropa showPrice-funktionen från showTotal-funktionen för att även få totalpriset i rätt format men jag kan inte få det att funka. Förslag?
Prova detta istället för "fullösningen":
if (intval($price) == $price) {
// $price är heltal
}
Angående din fråga så har jag inte en clue.
Tack! Det funkar bra. Så här blir det då:
<?
function showPrice($price, $d){
// ** Rabatt vid förskottbetalning
$f = 0.9;
// ** Räknar ut förskottspris
if ($d)
$price*=$f;
// ** Rätt antal decimaler
if (!(intval($price) == $price))
$price = number_format($price, 2);
return $price;
}
?>
Men som sagt - grundfrågan kvarstår...
Tycker det borde funka med:
function showTotal($d){
foreach ($_SESSION['cart'] as $item => $p)
$price += $_SESSION['cart'][$item]['totalPrice'];
// ** Rabatt vid förskottbetalning
if ($d){
$price *= 0.9
}
$price = showPrice($price, false);
return $price;
}
Jag visste väl att det inte skulle va så svårt. :)
sä här blev det nu:
<?
function showTotal($d){
foreach ($_SESSION['cart'] as $item => $p)
$price += $_SESSION['cart'][$item]['totalPrice'];
$price = showPrice($price, $d);
return $price;
}
function showPrice($price, $d){
// ** Rabatt vid förskottbetalning
$f = 0.9;
// ** Räknar ut förskottspris
if ($d)
$price*=$f;
// ** Rätt antal decimaler
if (!(intval($price) == $price))
$price = number_format($price, 2);
return $price;
}
?>
Jag hade försökt på liknande sätt tidigare men jag missade en grej när jag ropade på funktionen:
<?
showPrice($price, $d); // Fel
$price = showPrice($price, $d); // Rätt
?>
Tack!
Det borde t.o.m. gå att returnera direkt, utan att lägga i variabeln:
return showPrice($price, $d);
Jodå, det funkade det också. Tack!