2013-05-25 70 views
0

我已經爲我的平臺中的用戶創建了比例類型的PHP腳本。根據變量值回顯文本

根據用戶的交互方式,$ratio變量號碼發生變化。他們以比例1.00開始。他們可以得到的最低值是0.00,沒有最大值,最高的用戶當前在87.50

我想顯示一條消息給用戶,具體取決於他們的比例範圍。

如果他們$ratio是任何地方0.90之間0.00到那麼呼應這樣的:

<p>Your ratio is very poor!</p> 

如果再0.911.99之間:

<p>Your ratio is good!</p> 

最後,如果2.00之間時,則:

<p>You are a grandmaster!</p> 

我在猜測IF/ELSEIF聲明可以解決這個問題嗎?我的平臺流量很大,所以我正在尋找一種輕量級的解決方案,不會將我的服務器置於健康支持之上。

回答

1

試試這個:

<?php 

$ratio = 1.8; 

switch ($ratio) { 
    case ($ratio >= 0 && $ratio < 0.91): 
     echo 'Your ratio is very poor!'; 
     break; 
    case ($ratio >= 0.91 && $ratio < 2): 
     echo 'Your ratio is good!'; 
     break; 
    case ($ratio >= 2): 
     echo 'You are a grandmaster!'; 
     break; 
} 
+0

我只是給這個測試運行。一個問題,嘗試設置比例爲「0.00」,它不起作用,它不顯示正確的消息。你知道問題是什麼嗎? –

+0

這是由於PHP字符串與整數。嘗試使用$ ratio =「0.0」; – Farkie

+0

這是行不通的,因爲比率值永遠不會小於兩位小數,所以至少它會是「0.00」或者例如「0.0025」...... –

2

你可以用寫這個函數:

function getRatioMessage($ratio) { 
    if ($ratio <= 0.90) { 
     $message = 'Your ratio is very poor!'; 
    } elseif ($ratio <= 1.99) { 
     $message = 'Your ratio is good!'; 
    } else { 
     $message = 'You are a grandmaster!'; 
    } 

    return '<p>'.$message.'</p>'; 
} 

,然後用它的方式如下:

echo getRatioMessage($ratio); 
+0

工程很棒。然而,我有一個問題。與發佈的其他解決方案相比,此解決方案的速度有多快?微型優化對我的網站很重要。 –

+0

'switch'似乎更快。爲了更細化,當'switch'爲0.00001s時'if'語句花費了0.00008s。恕我直言,'如果'具有很強的可讀性。 –