我必须修改一个大型PHP应用程序的某些部分.当然,不同的部分是由不同的人(主要是实习生)编写的.查看代码后,我发现其他开发人员使用了2种编码样式:
[剪断]
<tr class="ds_subsubhead_2">
<td colspan="21" align="left"> A <select name="nb_linge" onChange="MM_jumpMenu('parent',this,0)" style="vertical-align:middle"> <option value="<?=get('index.php',$orgurl,'nb_ligne=','22','23','9999') ?>" <? if($messagesParPage == '9999') { ?>selected="selected"<? } ?>>Tous</option>
<option value="<?=get('index.php',$orgurl,'nb_ligne=','22','23','25') ?>" <? if($messagesParPage =='25') { ?>selected="selected"<? } ?>>25</option>
<option value="<?=get('index.php',$orgurl,'nb_ligne=','22','23','50') ?>" <? if($messagesParPage =='50') { ?>selected="selected"<? } ?>>50</option>
<option value="<?=get('index.php',$orgurl,'nb_ligne=','22','23','75') ?>" <? if($messagesParPage =='75') { ?>selected="selected"<? } ?>>75</option>
Run Code Online (Sandbox Code Playgroud)
[snip]或
<td <? if((isset($_GET['t1']))&&($_GET['t2']!='ALL')) { ?>bgcolor="#0099FF"<? } ?>></td>
<td <? if((isset($_GET['t3']))&&($_GET['t4']!='ALL')) { ?>bgcolor="#0099FF"<? } ?>></td>
<td <? if((isset($_GET['t5']))&&($_GET['t6']!='ALL')) { ?>bgcolor="#0099FF"<? } ?>></td>
Run Code Online (Sandbox Code Playgroud)
[剪]甚至
<script type="text/javascript" src="<?=$_SESSION["path"]?>lib/js/ajax.js"></script>
Run Code Online (Sandbox Code Playgroud)
[剪断]
[剪断]
$output .= '<td valign="top"><form name="form5" method="GET" action=""><select name="m" onchange="this.form.submit()">';
if ( empty($_GET['p']) ) $output .= '<option value=" ">All</option>';
else $output .= '<option value='.$_GET['m'].'>'.$_GET['m'].'</option>';
$query = "SELECT DISTINCT maoie FROM ".$BD."site";
$res = mysql_query($query);
while ( $row = mysql_fetch_assoc($res) ) {
if( !empty($row['maoie']) ) $output .= '<option value="'.$row['maoie'].'">'.$row['maoie'].'</option>';
}
$output .= '</select></form></td>';
$output .= add_more_stuff();
echo $output;
Run Code Online (Sandbox Code Playgroud)
现在,我并不完全确定这是一种更加程序化的方法,但至少它与前一种不同.您认为哪一个通常更好?
我个人而言,不喜欢'互联网'风格的胶水.
我会抛弃两者并将PHP编码远离任何表示层特定的HTML.否则,对于比'Hello World'更大的东西,事情变得非常讨厌,很快
如果你想稍后修改代码,你就是在脚下拍摄自己.我会尝试通过移植到正确的CMS/Abstract演示文稿来解决这个问题.
看起来都不好.我不想在任何一种风格中维护代码.通过花时间现在正确清理它来节省时间.
即使是将HTML移动到外部加载的格式字符串并通过sprintf()或类似字符串运行它们的基本操作也可能比当前情况更好.而且你说你有这些编码风格的混合!?!
先生,祝你好运!
两种风格都应该降级为动态互联网成长之痛的坟墓.看一下开源PHP项目,看看一个好的,可维护的编码风格.像http://sourceforge.net/projects/wikipedia MediaWiki 这样的东西展示了HTML-In-Source和分离的良好组合(虽然它不是完美的恕我直言)