iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 1
16
Modern Web

寫給朋友的 PHP 從 0 到 100 實戰教程系列 第 1

Day 1. PHP教學: 寫程式真的不難,從零開始也可以

Why

為什麼我們要選 PHP 當作第一個程式語言來學呢?

我真心推薦,因為這個語言學習門檻最低,非常適合新手入門,
不會痛苦的卡在深奧的隱藏架構上,也不用需要先理解複雜的除錯工具。
只要了解基本的邏輯,就能自己蓋出一個網站,真的非常有成就感。
全世界上使用率最高的網頁開發語言就是PHP,
超過兩億個網站都是PHP為基底,甚至連臉書也是,
學會了就不怕沒案子沒網站可以賺錢,想開發什麼應用都做得到。
簡單來說,PHP 就是學習飛快。

How
好,怎麼開始學呢?一開始看英文程式碼就跟天書一樣看不懂
我會把它轉成中文跟用一些遊戲來解釋比較簡單,其實概念不難。
給自己一點耐心,遇到不懂的就去 Google 用關鍵字找答案!
就像小智遇到陌生的神奇寶貝,只要查一下圖鑑就能應對了。
https://ithelp.ithome.com.tw/upload/images/20171218/20107394XnoroIexca.jpg

What

怎麼看懂程式碼的語法

舉個例子:
假設你現在正在玩神奇寶貝寶可夢,小智跟皮卡丘遭遇到一隻野外的傑尼龜。
我們簡單的用中文來描述發生的事。
https://ithelp.ithome.com.tw/upload/images/20171218/20107394OXTbtiIP34.jpg

======= 開始 =======
戰鬥開始出來吧皮卡丘皮卡丘使用十萬伏特電爆傑尼龜計算傷害丟出寶貝球收服戰鬥結束
======= 結束 =======

https://ithelp.ithome.com.tw/upload/images/20171218/20107394VhJ6CQRhBz.jpg
蛤?看你一臉問號的說很難看懂。
那我幫你排版一下變成這樣是不是好看很多:

======= 開始 =======
戰鬥開始。
出來吧[皮卡丘]。
[皮卡丘]使用[十萬伏特]電爆[傑尼龜]。
計算傷害。
丟出寶貝球收服。
戰鬥結束。
======= 結束 =======

這樣就容易看懂多了。
程式也是一樣的概念,硬要一行寫完也是可以,只是真的很醜很難看懂。
讓第二個人容易看懂,不吃力是一件很重要的事情。

另外,電腦跟我們一樣就是一行一行看懂指令,一行行動作。
上一行做的事會影響到下一行的狀態。
前一行是因,接著是果,因果相連。
有點像數學的算式,但是我們依照需求可以做很多變化。
那我換英文 PHP 的語法來舉例囉:

//======= Start =======
echo "battle start";            // 戰鬥開始。
echo "Pikachu enter the arena"; // 出來吧[皮卡丘]。
echo "Pikachu use Thunderbolt"; // [皮卡丘]使用[十萬伏特]電爆[傑尼龜]。
echo "Damage calculate";        // 計算傷害。
echo "Squirtle captcha"         // 丟出寶貝球收服。
echo "end of battle;           // 戰鬥結束。
//======= End =======

上面的簡單印出文字指令,可以了解到幾個觀念:

  • echo "文字"; 是用來印出字串的。
  • 程式碼的分號其實就是中文的句號,分號也是指令的結尾,每一句都要有。
  • 記得指令要斷行排版比較容易讓人看懂。
  • 兩個斜線 // 後方是註解,可以寫任何說明也可以是中文,不會被執行。
  • echo 的功能是是印出後方的字串,這些『字串』可以用雙引號 " " 包起來 "像這行字被包起來"

是不是覺得很簡單,撿幾個觀念就可以自稱會寫PHP了
https://ithelp.ithome.com.tw/upload/images/20171218/20107394cCFYLXQzzS.png

對了,我的語法裡面有藏兩個錯誤,有人可以幫忙抓到這些bug嗎?
抓到就快去留言!順便告訴我你有沒有看懂,再分享給想一起學程式的朋友!

補一個名詞解釋:bug 念起來類似『霸格』其實就是 程式的臭蟲,可以泛指語法或邏輯錯誤。
在執行過程中,會導致結果不如預期,要找出來錯誤的點進行修正。

想真的執行 PHP 語法的話,到這個網址可以任意修改語法,不用安裝環境就能無痛玩 PHP 唷
http://sandbox.onlinephpfunctions.com/code/b937779a7950c728c0c2538cfa0aa375a6817268
找看看差異,再留言告訴大家差在哪裡,為什麼要有這個差異?

如果有人問問題,明天我會挑一個最棒的問題來回答:D
今天到這裡好了,被人找去用 PHP 串接國外金流模組了,可能會有人想問是哪一家: https://www.nmi.com/
接下來會慢慢深入,畢竟是從 0 開始,會由淺入深用同樣好理解的方式,直到教你架出網站!

哦對,我們除了串金流還用 php 寫了一個很強大的短網址服務,可以替你完成轉址以外、很多省時省力的事情
https://lihi.io
只要有想法,學完 php 你想做什麼服務都可以自己做出來,能幫你節省工作所需的時間,甚至能幫你賺錢
(我是從辦公室訂便當系統開始的哈哈)

加油,永不放棄!!


下一篇
Day 2. PHP教學: 把資料記到變數盒子
系列文
寫給朋友的 PHP 從 0 到 100 實戰教程30
6
casiolike0531
iT邦新手 5 級 ‧ 2018-02-27 15:13:35

看懂了: )

BUG 在:


//沒加分號
echo "Squirtle captcha"         // 丟出寶貝球收服。

//少了雙引號 "
echo "end of battle;           // 戰鬥結束。

太厲害了!!馬上被你找到了,要不要來練這本如來神掌
http://img0.utuku.china.com/500x0/toutiao/20170527/3c8910f2-77bb-4e4c-a865-820e4fb9a48f.jpg

0
haha1811
iT邦新手 5 級 ‧ 2018-07-23 16:47:34

謝謝分享!

0
trista6140
iT邦新手 5 級 ‧ 2019-04-11 17:37:44

謝謝分享!簡單易懂:)

0
admirable98
iT邦新手 5 級 ‧ 2019-04-16 10:34:41

請問falconwei 前輩,我程式算是無基礎 最近想學網頁前後端+My SQL資料庫,請問該學 PHP還是 JAVA會比較好。

若以找工作的話 是PHP比較好、還是JAVA比較好。是先學PHP完、再學JAVA嗎。謝謝。

JAVA會比PHP難學嗎。請falconwei 前輩 是否可給建議謝謝。

我要留言

立即登入留言