哪一个是编写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>
答案 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>