这是不妥的第一件事是,你应该使用<?php
打开你的PHP代码,而不是仅仅<?
。短表已被弃用,并且可能无法正常工作。
此外,不推荐使用打印输出的简写形式<?=
。您应该使用<?php print
或<?php echo
。 (是的,我知道它使代码更长...不要抱怨!;-))
这可能是什么打破了你的程序。新的PHP安装将会缩短PHP标签的格式。就这么简单。
但是,当我在这里...你有第二个问题是混合进出PHP和PHP的可怕混合。你应该清理你的代码,这样你就不必拥有太多的PHP小部分。这样做使得在PHP中使用HTML和你的大括号来跟踪你的标签几乎是不可能的。几乎可以保证会导致错误,并且在两年后回到错误修复时很难阅读。
为了解决这个问题,我建议编写代码更是这样的:
<?php
for($i=1; $i<=$npagine; $i++) {
if($i==$index) {$class='paginas';} else {$class='pagine';}
.... //output your HTML here, without the if() condition embedded in it.
}
?>
你可以简化甚至进一步使用三元运算符。
切换到长格式PHP标签<?php
积极地阻止PHP和HTML之间的过度切换,所以您可能希望借此机会以更易读的形式重新编写代码。
在这种情况下,使用print
或echo
来输出整个HTML标记没有任何问题,而不是切换到HTML模式来打印它。
所以,你最终可能会以这样的代码:
<?php
for($i=1; $i<=$npagine; $i++) {
$class = ($index == $i) ? 'paginas' : 'pagine';
print "<a class='{$class}' href='index.php?{$splitter_zone}&index={$i}>{$i}</a>";
}
?>
更简单,更容易阅读,我相信你会同意。
我要做的最后一点是我总是建议避免使用单字符变量名称,如$i
。尝试使用更具描述性的内容来描述您使用的内容。这似乎是无害的,但想象一下,试图搜索一个大型程序$i
找到一个错误。你会得到很多错误的点击。
问题出在Dreamweaver上,而不是你的代码。我建议使用除Dreamweaver之外的其他代码编写PHP代码 - 这非常糟糕。 – 2011-03-08 17:48:09
它看起来好像dreamweaver对php和html模板的混合有一些问题。 – 2011-03-08 17:49:46
我很惊讶Dreamweaver仍然生成这样的代码,还是旧版本? – Adam 2011-03-08 17:56:42