2013-12-19 38 views
0

哪一個是更好的做法來編寫php,我知道使用CSS類會更好,但這只是一個例子。重寫整行還是更好地在行內編輯更好?內聯html編輯或重寫整行

我喜歡第一個例子,但我覺得它有點多餘,第二個例子不太多餘,但很難閱讀。如何做這些操作的標準是什麼?一個例子執行得更快嗎?

if(isset($affiliationError) && $affiliationError) 
    echo '<label for="affiliation" style="color: #F66;">Affiliation:</label>'; 
else 
    echo '<label for="affiliation">Affiliation:</label>'; 

// OR // 

echo '<label for="affiliation" '; 

if(isset($affiliationError) && $affiliationError) 
    echo 'style="color: #F66;" '; 

echo '>Affiliation:</label> 
+0

不要過早優化!我會去做最不重要的選擇。如果你想改變你的輸出呢? –

回答

2

我敢肯定第一個選擇將運行頭髮更快,因爲你只運行一個echo,而不是三個。雖然不足以擔心,除非你在頁面上運行了10,000個這樣的文件(在這種情況下,你需要使用一個css類,而你的肯定是!)。

我認爲對付它的最好方法是設置一個$style變量,然後將其建設成爲你的字符串,像這樣:

$style = ""; 
if(isset($affiliationError) && $affiliationError) 
    $style = 'style="color: #F66;" '; 

echo '<label for="affiliation" '.$style.'>Affiliation:</label>'; 

// OR 

echo "<label for=\"affiliation\" $style>Affiliation:</label>"; 

這是比任何你的選擇效率不高,我想,但仍然足夠快,不用擔心。

+0

我認爲效率不高。 +1,因爲我也會這樣做。 –

+0

'+ 1'我比這兩個例子都更喜歡這個流程!謝謝! –

0

您發現哪些代碼更容易維護或閱讀?我發現第一個更容易閱讀(雖然我更喜歡{}我的if語句)。

另一種選擇是內聯,如果(雖然我不知道它是更好)

echo '<label for="affiliation" '. ((isset($affiliationError) && $affiliationError) ? 'style="color: #F66;" ' : "") . '>Affiliation:</label>' 

OR(我的偏好)

<label for="affiliation" <?php echo ((isset($affiliationError) && $affiliationError) ? 'style="color: #F66;" ' : "") ?>>Affiliation:</label> 

我經常使用上面的選項與user1618143的提高的$ style變量,便於閱讀和維護。例如

$style = (isset($affiliationError) && $affiliationError) ? 'style="color: #F66;" ' : ""; 
<label for="affiliation" <?php echo $style ?>>Affiliation:</label>