給各位讀者:
雖然筆者在《PHP Smarty 樣版引擎》中已經盡了最大的努力,但是難免還是會有疏漏之處。以下提供本書第一刷的勘誤修正表:
封面及頁 2-3 第 1 行
osCommerce 並沒有採用 Smarty ,應更正為 XT-Commerce 。 (感謝 domecc 讀者提供)
頁 2-6 第 15 行
1
| |
應改為
1
| |
頁 3-7 架構圖
少了一層 Project ,正確如下: (感謝 yaue 讀者提供)

頁 3-13 第 13 行
1
| |
應改為
1
| |
(感謝 chihwen 讀者提供)
頁 5-14 倒數第 4 行
1
| |
應加入 .tpl :
1
| |
(感謝 domecc 讀者提供)
頁 5-16 第 5 行
如果找不到 plugin 時就會在 PHP 內建的函式尋找是否有定義該函式,但是這個規則對陣列則是例外。
因為 Smarty 在處理陣列時,會另外用 _run_mod_handler 方法來處理,因此陣列相關函式就不適用以上的規則。
但是我們還是可以透過 @ 這個操作符號來直接對陣列使用 PHP 內建的函式,如下:
1
| |
頁 6-2 下半頁 ~ 6-3 上半頁
if 標籤判斷式所支援修飾字的表格說明對應錯亂,正確如下:
| 修飾字 | 替代語法 | 範例 | 語意 | PHP 同等語法 |
|---|---|---|---|---|
| == | eq | $a eq $b | 等於 | == |
| != | ne, neq | $a neq $b | 不等於 | != |
| > | gt | $a gt $b | 大於 | > |
| < | lt | $a lt $b | 小於 | < |
| >= | gte, ge | $a ge $b | 大於或等於 | >= |
| <= | lte, le | $a le $b | 小於或等於 | <= |
| === | $a === 0 | 值與型態皆相等 | === | |
| ! | not | not $a | 否定 | ! |
| % | mod | $a mod $b | 取 $a 除以 $b 的餘數 | % |
| is [not] div by | $a is not div by $b | $a 是否能被 $b 整除 | $a % $b == 0 | |
| is [not] even | $a is not even | $a [非]偶數 | $a % 2 == 0 | |
| is [not] odd | $a is not odd | $a [非]單數 | $a % 2 != 0 | |
| is [not] even by | $a is not even by $b | *註解 | ($a / $b) % 2 == 0 | |
| is [not] odd by | $a is not odd by $b | *註解 | ($a / $b) % 2 != 0 |
(感謝 chihwen 讀者提供)
頁 7-12 第 3 行
第 3 行並非程式內容,而是檔案路徑名稱。
頁 11-3 第 18 行
1
| |
應改為
1
| |
頁 13-11 架構圖
少了 plugins 資料夾,正確應為:

頁 17-33
MVC 的圖解錯誤,下圖為正確圖解:

頁 B-12
在「你應該要注意的事」裡,有關 MySQL 4.0 與 MySQL 4.1 的觀念是有問題的。詳情請參考筆者的「MySQL 4.1+ 編碼快速入門」一文。
如果大家有看到什麼不對的地方,也歡迎在這裡提出。
再次謝謝大家的支持。