Source code
scores

function score($n=0){$ret='';
for(
$i=1;$i<6;$i++){
    
//usage habituel avec des étoiles pleines et vides (star et star-o)
    
if($i<=$n)$ic='star'; else $ic='star-o';
    
//pour ajouter les demi-étoiles
    
if($i<=$n)$ic='star'; elseif($i>$n+0.5)$ic='star-o'; else $ic='star-half-empty';
    
//c'est imprécis que les demis apparaissent entre 0.5 et 0.9
    //il faut décaler la détection d'un quartile vers la gauche :
    
if($i<=$n+0.25)$ic='star'; elseif($i>$n+0.75)$ic='star-o'; else $ic='star-half-empty';
    
//le demi s'affiche entre 0.25 et 0.75, et l'étoile est pleine pour un score entre 0.75 et 1.25.
    
$ret.=ico($ic);}
return 
$ret;}

be logged for test

0.05579