Slika:
Imam sledeći problem! Kada prosledim ručno kao parametar funkciji npr. broj 3.0 dobijem sliku sa tri zvezdice(što i treba):
$i = 3.0;
echo $i . " " . starRate($i) . "<br/>";
ali u for petlji, kada ciklusna promenjiva $i dođe do 3, dobijam tri i pola zvezdice:
for($i=0;$i<=5;$i+=0.2)
{
echo $i . " " . starRate($i) . "<br/>";
}
Zašto se ovo dešava i zašto je poslednja vrednost $i u okviru for petlje 4.8 kad treba 5?
Ceo kod:
<?php
/*
FUNKCIJA KOJA NA OSNOVU PROSLEDJENE OCENE(FLOAT NUMBER) OD 0 DO 5
GENERISE ZVEZDICE(GIF SLIKA)
*/
function starRate($parRating)
{
$imagesPath = "./star_rating_img"; // folder gde se nalaze slike
if($parRating <= 0)
{
$rateStars = "$imagesPath/00star.gif";
}
elseif ($parRating <= 0.5)
{
$rateStars = "$imagesPath/05star.gif";
}
elseif ($parRating <= 1)
{
$rateStars = "$imagesPath/1star.gif";
}
elseif ($parRating <= 1.5)
{
$rateStars = "$imagesPath/15star.gif";
}
elseif ($parRating <= 2)
{
$rateStars = "$imagesPath/2star.gif";
}
elseif ($parRating <= 2.5)
{
$rateStars = "$imagesPath/25star.gif";
}
elseif ($parRating <= 3)
{
$rateStars = "$imagesPath/3star.gif";
}
elseif ($parRating <= 3.5)
{
$rateStars = "$imagesPath/35star.gif";
}
elseif ($parRating <= 4)
{
$rateStars = "$imagesPath/4star.gif";
}
elseif ($parRating <= 4.5)
{
$rateStars = "$imagesPath/45star.gif";
}
elseif ($parRating <= 5)
{
$rateStars = "$imagesPath/5star.gif";
}
return "<img src=\"$rateStars\" alt=\"ocena\"/>"; // pocratni rezultat je <img> tag
}
echo "<div style=\"float:left; padding-right: 70px\">";
echo "<h2>FOR PETLJA:</h2>";
for($i=0;$i<=5;$i+=0.2)
{
echo $i . " " . starRate($i) . "<br/>";
}
echo "</div>";
echo "<div style=\"float:left;\">";
echo "<h2>RUCNO:</h2>";
$i = 3.0;
echo $i . " " . starRate($i) . "<br/>";
$i = 3.1;
echo $i . " " . starRate($i) . "<br/>";
echo "</div>";
?>