内联html编辑或重写整行

时间:2013-12-19 21:48:50

标签: php html css

哪一个是编写php的更好的做法,我知道使用CSS类会更好但这只是一个例子。重写整行是否更好,还是在行内编辑更好?

我喜欢第一个例子,但我觉得它有点多余,第二个例子不那么冗余,但更难阅读。如何进行这些操作的标准是什么?一个例子执行得更快吗?

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>

2 个答案:

答案 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>";

我认为它的效率低于你的任何一个选项,但仍然足够快,不用担心。

答案 1 :(得分:0)

您觉得哪些代码更易于维护或阅读?我发现第一个更容易阅读(虽然我更喜欢围绕我的if语句{})。

另一个选项是内联if(虽然我不确定它是否更好)

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

或(我的偏好)

<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>