Wednesday, October 28, 2009

html มันไม่ดียังไง ทำไมคนถึงใช้ php

HTMLมันต้องสร้างเองทีละหน้า
PHP มันมาเป็นสำเร็จรูปเลย

(สำเร็จรูปยังไงอ่ะ ??)

html มันเป็น static ไงครับ ถ้ามีการอัพเดทเราต้องไปแก้โค้ดมันใหม่ แล้วอัพโหลดทับ
แต่ php ไม่ต้อง เพราะมันเป็น dynamic แค่ไปเพิ่มข้อมูลใน database เพจก็เปลี่ยน ไม่ต้องอัพโหลด อีกอย่างมันสามารถช่วยเราคำนวณอะไรหรือจัดรูปแบบให้ได้โดยเราไม่ต้องเขียน โค้ดเอง

ทั้งหมดเอง รวมไปถึงการเก็บข้อมูลจากฟอร์มลง file หรือ database ซึ่ง html เฉยๆ ทำไม่ได้
อย่างเว็บบอร์ดนี่ก็เป็น php จะเห็นว่าข้อมูลมันเพิ่มลดได้ตลอดเวลา โดยที่ไม่ต้องอัพโหลดใหม่แม้แต่นิด
แต่ผลลัพธ์ได้จาก php มันก็ยังเป็น html อยู่


php/asp เป็นภาษา ในแง่ของ programming ไม่ใช่การแสดงผล เพราะมีไวยากรณ์ของมันเอง และมันเป็น interpreter (แปลไปรันไป) ถ้าเขียนผิดก็รันไม่ได้เช่นกัน คล้ายพวก c/vb/java/pascal

แต่ต่างกันที่อย่างหลังเป็น compiler (รันหลังแปล)

(ดูข้อมูลเพิ่มเติม :: รูปแผนผังการพัฒนาว่าภาษาไหนพัฒนามาจากภาษาอะไรบ้าง ของ O'Reilly) --->PHP is a server-side HTML embedded scripting language. ( เข้าไปดูข้อมูล

เพิ่มเติมได้ที่ http://www.google.co.th/search?hl=en&q=php+language&meta= )

php จะทำการประมวลที่ server ต่างจาก

html ที่ไม่ต้องการการประมวลผล (ส่งมาให้ client เลย)

ทำให้ คนขโมย php ไม่ได้ ขโมยยังไง ก็ได้แต่ html ที่ server แปลแล้ว

(ไม่รวมถึงการ hack server นะจ๊ะ)

คำถาม ถ้าจะศึกษา php นี่จำเป้นต้องมี ความรู้ html ระดับไหน ????

ตอบ :: ระดับ tag พื้นฐาน ครับ



php คือ scripting language ไม่ใช่ computer language
เช่น


global $LOC;
$current_time_m = $LOC->decode_date('%m', $LOC->now);

for ($i = 1; $i <= 12; $i++) {
echo "
if ($i == $current_time_m) { echo " selected='selected'"; }
$month_text = date("F", mktime(0, 0, 0, $i+1, 0, 0, 0));
echo ">$month_text
"; } ?>

แล้ว เราพิมพ์ผิด จะตัวอักษรผิด หรืออะไรผิดก็เหอะ มันจะสามารถรันได้ ไม่เหมือนกับภาษาคอมพิวเตอร์ เช่น ภาษาซี เดลไฟล์ ที่ถ้าพิมพ์ผิดรูปแบบ มันจะรันไม่ได้เลย แต่ถ้าใน php เราพิมพ์ผิด

มันก็รันได้ โดยมันจะแสดงผลทั้ง ๆ ที่มันผิดนั่นแหละเพราะ php คือ scripting language ไม่ใช่ computer language มันเลยไม่เหมือนกัน...



การเขียนผิดแล้วจะทำให้เกิด error มีสองแบบคือ syntax error กับ logical error
ลองเปลี่ยน $i เป็น i$ ใน php ดูสิ มันจะยังรันต่อไปได้อยู่หรือเปล่า นี่แหละคือ syntax error
ถ้าเขียน syntax ผิดแล้ว ไม่ว่าภาษาอะไรก็รันไม่ออกทั้งนั้นครับ
สำหรับ เขียนผิดแล้วมันจะแสดงอันที่ผิด นั้นมันเป็น logical error

ตัวแปรทุกอย่างของ php ไม่ต้องมีการประกาศ นี่คือ syntax ของเขานะครับ
สามารถใช้ได้เลย เพราะฉะนั้นการใส่ชื่อตัวแปรอื่นลงไปได้ ไม่ผิด
ดังนั้นไม่ได้เป็น syntax error แต่เป็น logical error
คือการเรียกตัวแปรผิดตัว ผลลัพธ์จะออกมาผิดแน่นอน

ผมไม่เห็นว่าข้างบนนั้นจะเขียนผิดตรงไหน เพราะมันตาม syntax ทุกอย่าง
ถึงแม้จะแก้ชื่อตัวแปรเป็นอย่างอื่นไปก็ยังไม่เกิด syntax error เพราะตัวแปรไม่ต้องประกาศ

ในทางกลับกัน ถ้าเราเปลี่ยนชื่อตัวแปรในภาษา c เป็นอย่างอื่น จะเห็นว่ามันรันไม่ได้
เพราะเราไม่ได้ประกาศตัวแปรนั้นไว้ก่อน ซึ่งการประกาศตัวแปรกำหนดไว้ใน syntax ของภาษา c
ถ้าเราไม่ประกาศ แสดงว่าเราผิด syntax จะเกิด syntax error ไม่ใช่ logical error

เกิด error คนละแบบ เนื่องจาก syntax ที่กำหนดไว้ของแต่ละภาษาต่างกัน แม้จะเกิดจากกรณีเดียวกัน
ไม่เกี่ยวว่ามันจะเป็น scripting language หรือ computer language

หากคิดว่า ภาษาหนึ่งเขียนผิดแล้วยังรันได้ ก็ต่อเมื่อภาษานั้นเป็น scripting language
ดังนั้น computer language คือภาษาที่เขียนผิดแล้วรันไม่ได้ อย่างนั้นเหรอครับ

หากคิดตามเงื่อนไขเช่นนั้น คิดผิดแล้ว เพราะภาษาที่เขียนผิดแล้วรันไม่ได้
ไม่ได้มีแต่ computer language เพียงอย่างเดียว จากตัวอย่างเรื่อง $i กับ i$ ของ php ที่บอกไป


ตอนนี้กำลังเทคโนโลยีการพัฒนา เว็บ ก็ได้ก้าวหน้า ไปจนถึง Active Webpage หรือว่า เว็บที่ปรับเปลี่ยนตัวมันเองได้ (อะงง เว็บเปลี่ยนไป๋)
นั่นหมายความว่า ถ้าผมเขียน นาฬิกา บนภาษา HTML ธรรมดา นาฬิกา มันก็จะเป็นเวลานั้นตลอดไป จนกว่าเราจะไปเปลี่ยนมันเอง
แต่ ด้วย การพัฒนา ไปอีกขึ้น เกิดภาษาต่างด้าว เพิ่มเข้าไปในHTML ทำให้ HTML เกิดการเปลี่ยนแปลงได้ตลอดเวลา โดยขึ้นตอนนั้นแตกต่างกันไปตามรูปแบบภาษาที่ใช้
อย่างเช่น JAVA เป็นต้น นาฬิกา บนเว็บของเราก็จะรันเป็นปัจจุบัน(ลองกดแถบด้านขวาของ TW partol ดูก็ได้)

โดย ภาษาที่ทำให้เว็บของเรา Active ก็มีหลายภาษา เช่น PHP ASP JHTML และอื่นๆอีกมากมาย(เฉพาะที่ Microsoft IIS ก็รันได้ 200 กว่าภาษาแล้ว)
แต่โดยหลักๆ จะเห็นภาษา PHP ASP และ JAVA นำตลาดอยู่
โดย PHP มีข้อดีตรงที่ใช้งานง่าย แล้วก็มีคนใช้เยอะ มีคนให้ช่วยตลอด รวมถึงมี สคริปต์ ฟรีบนเนตมากมาย
ส่วน ASP นั้น มีข้อดีตรงระบบที่ยืดหยุ่น และมีของSupport เยอะ แต่มีข้อเสียที่ระบบค่อนข้างแพง ทำให้คนธรรมดาใช้น้อย ส่วนใหญ่ระดับองกรใหญ่ๆจะใช้กัน
สุดท้าย JAVA เป็นระบบที่ยึดหยุ่นสูง แต่การเขียนไม่ใช่เรื่องง่ายเลย รวมไปถึง Server ที่กินทรัพยากรเยอะ

สรุป คนใช้ PHP เยอะ เพราะมันง่าย ฟรี และ มีของให้เลือกเยอะ


เอาเป็นว่า

HTML เป็น static ซึ่งมันจะรัน ทุกสิ่งทุกอย่าง ตามที่เขียนในโค้ดออกไปละกันครับ ใส่รูปก็รันรูป ใส่เสียงก็รันเสียง

ส่วน

ภาษา PHP เป็น dynamic เป็นอีกหนึ่งระดับในการอำนวยความสะดวกในการสร้างเวปเพจครับ เพราะสามารถคำนวณเองได้ ส่งค่า รับค่าไปใช้ต่อได้ (จิงๆ HTML ก็ทำได้ในส่วนนี้) ติดต่อ ODBC ได้ เป็นต้น และสะดวกตรงที่ เราไม่ต้องไปเปลี่ยนอะไรในโค้ด ก็สามารถเปลี่ยนตัวเวปได้ครับ


ที่ คนนิยมใช้ php กัน เพราะว่า ในการเขียนโปรแกรม โปรแกรมเมอร์ส่วนใหญ่ต้องการ เขียนโปรแกรมให้สั้นที่สุด เพื่อให้ได้โปรแกรมที่สมบูรณ์แบบที่สุด และที่สำคัญคือ ความสะดวกสบายในการใช้ของ User และ ความสะดวกสบายในการทำโปรแกรม ของ Programmer

แต่ไม่ใช่ว่า ไม่มีคนใช้ HTML นะครับ ทุกสิ่งที่เห็นบนเวปไซต์ล้วนเป็น HTML ทั้งนั้น เพราะพวก php asp jsp เป็น script language ที่รันควบคู่ไปกับ HTML ครับ ขนาดเปิดแท็กยังต้องใช้เครื่องหมาย < > อยู่เลย ( เช่น ของ php และ <% %> ของ jsp เป็นต้น)

No comments:

Post a Comment