iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0

文章說明

由於課程第十一週開始,我的課程進度已經很明顯跟實際週次脫鉤,所以時間線會以當時進行的課程進度撰寫,可能對於閱讀的人來說會有點錯亂,在此說聲抱歉。還是希望這份筆記可以整理當時的自己,以事後檢討的方式給自己一些改善建議。

第九週作業心得

這週作業的規模相對之前大了許多,除了要熟悉新的程式語言 php,還要接觸資料庫 SQL 語法,後面還要學習使用 session。老師的教學方式是一次橫跨 php, SQL, session 的方式帶著你完成留言板各項功能的實作。

我自己偏好的方式是先熟悉 SQL 的 CRUD 之後,然後再試著用 php 去串接 SQL 的 CRUD。這樣子好處是基底會比較穩,然後比較不會在 SQL, php 還有 html 之間跳來跳去的。當然每個人習慣的學習方式不太一樣,找到自己能接受的學習方式就好。

另外 PHP 本身可以鑲嵌 html 語法的關係,所以有段時間對於 PHP 夾 HTML 的寫法 不太能接受,一直到接觸了別的樣板語言 njk,才發現這是所有樣板語言共通的問題,無可迴避的情況下才接受了 PHP 夾 HTML 的寫法

我之所以很排斥 PHP 夾 HTML 的寫法,有很大原因是因為這樣子寫的程式碼很難維護,呈現邏輯和頁面混在一起,造成非程式開發的網頁美編人員很大的困擾。或許之後導入框架 laravel 之後這個問題有可能被改善,但因為此課程並不是以 PHP 開發為主,所以我也沒機會見證這件事情了。但總之,我很小心地避免使用這種 PHP 夾 HTML 的寫法

那到底什麼是 PHP 夾 HTML 的寫法 呢?

<?php if (判斷式){ ?>
  <p>判斷式為真</p>
<?php } else { ?>
  <p>判斷式為否</p>
<?php } ?>

上面這種寫法再遇到巢狀敘述的話會更難讀,試著改成另外一種寫法

<?php if (判斷式){
  echo "<p>判斷式為真</p>";
  } else {
  echo "<p>判斷式為否</p>";
  }
?>

這種寫法可以確定 <?php ... ?> 這一坨東西會產生 <p>...</p> 的 html 內容,但是對於不熟悉 php 的人來說,還是包在一起不好讀,可能不小心會改壞頁面。那再換另一種寫法

<p>判斷式為<?php echo (判斷式) ? "真" : "否"; ?></p>

換成這種寫法的話,<?php ... ?> 就會像是內嵌進網頁的動態內容,美術人員在修網頁的時候也不會擔心改到 php 的東西。

上面這些是當初在寫第九週作業時,盡量要求自己遵守的原則。今天先分享到這裡,明日再繼續


上一篇
D22 中場休息: 要如何持續保持學習的熱誠?
下一篇
D24 第九週 php 留言板作業的心得之二
系列文
程式導師實驗計畫第五期 回顧筆記31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言