這是不妥的第一件事是,你應該使用<?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