2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
我將創(chuàng)建一個(gè)簡單的函數(shù),它根據(jù)給定的評(píng)級(jí)返回給定星星的填充水平:
<?php
function getStarClass(int $starPosition, float $rating): string
{
if ($starPosition <= $rating) {
return 'filled';
}
if ($starPosition - $rating < 1) {
return 'half-filled';
}
return 'empty';
}
$avrating = 3.5;
?>
<?php for ($star = 1; $star <= 5; $star++): ?>
<span class="dashicons dashicons-star-<?= getStarClass($star, $avrating) ?>"></span>
<?php endfor ?>
請(qǐng)注意,我還使用 PHP 的替代語法來顯示 HTML,因?yàn)槲蚁嘈潘m合該目的,但這完全是可選的。

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以添加一個(gè)額外的子句,檢查循環(huán)是否大于評(píng)級(jí)但小于下一個(gè)評(píng)級(jí)作為半啟動(dòng)評(píng)級(jí)...
$stars = '';
for ( $i = 1; $i <= 5 ; $i ++ ) {
if ( $i <= $avrating ) {
$stars .= '<span class="dashicons dashicons-star-filled"></span>';
} elseif ( $i < $avrating + 1 && $i > $avrating ) {
$stars .= '<span class="dashicons dashicons-star-half"></span>';
} else {
$stars .= '<span class="dashicons dashicons-star-empty"></span>';
}
}
您還可以通過將其作為部件添加來減少大量重復(fù)的樣板 HTML...
$stars = '';
for ( $i = 1; $i <= 5 ; $i ++ ) {
$stars .= '<span class="dashicons dashicons-star-';
if ( $i <= $avrating ) {
$stars .= 'full';
} elseif ( $i < $avrating + 1 && $i > $avrating ) {
$stars .= 'half';
} else {
$stars .= 'empty';
}
$stars .= '"></span>';
}
- 2 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)