January 20, 2012

PHP: ทำความรู้จักกับ PHP

คุณ neizod ถามว่าสนใจจะลองเขียนดูไหม ผมเลยลองกับ PHP เพราะคิดว่าเป็นภาษาที่ถนัดที่สุด (ถ้าไม่นับ HTML/CSS นะ)

PHP เป็นภาษาที่ใช้ในงานด้านเว็บเพจ เพื่อสร้างหน้าเว็บแบบไดนามิค และทำงานฝั่งเซิฟเวอร์เป็นหลัก แต่ก็สามารถทำงานบน command line ได้ ทำงานเป็นโปรแกรม GUI แบบ standalone (WinBinder/PHP-GTK) ก็ได้ ถ้า... บ้าพอ

PHP ทำงานแบบ interpreter (แปลทีละบรรทัด ขณะทำงาน) และมีภาษาที่ใกล้เคียงคือ ASP ของ Microsoft

PHP นั้นใช้ระบบตัวแปรแบบ Dynamic Typing (เปลี่ยนชนิดตัวแปรขณะที่ทำงานได้) และ Weak Typing (เปลี่ยนชนิดของค่าในตัวแปรอัตโนมัติ, ไม่จำเป็นต้องกำหนดชนิดตัวแปรก่อนแปลงค่า) สามารถเขียนได้ทั้งแบบ Functional และแบบ OOP ถ้าเขียนสคริปท์สั้น ๆ จะใช้ functional ก็ได้ แต่ถ้าเป็นโปรเจ็คขนาดใหญ่แนะนำให้ใช้แบบ OOP

ประวัติโดยย่อ

  • 1994: คุณ Rasmus Lerdoft ให้กำเนิด PHP ในฐานะสคริปท์ของ Perl ที่ชื่อว่า Personal Home Page Tools
  • 1995: PHP ถูกเขียนใหม่โดยใช้ภาษา C แบบ CGI เป็นรุ่น 1.0 โดยมีฟังชั่นพื้นฐานเหมือนกับ PHP ปัจจุบัน, ใช้ตัวแปรแบบ Perl, ฝัง HTML ลงไปได้, รองรับฟอร์ม
  • 1997: คุณ Zeev Suraski และ Andi Gutmans เขียน parser ของ PHP ใหม่ และใช้เป็นฐานของ PHP 3 และเปลี่ยนชื่อเป็นแบบ recursive ว่า PHP: Hypertext Preprocessor ซึ่งปล่อยออกมาในปี 1998
  • 1999: สร้าง Zend Engine (Zend เป็นคำที่มาจาก Zeev และ Andi)
  • 2000: ปล่อย PHP4 ใช้ Zend Engine 1.0
  • 2004: ปล่อย PHP5 ใช้ Zend Engine II และสนับสนุน OOP

PHP รุ่นล่าสุด (official) ตอนที่เขียนคือ 5.3.9 แต่ก็ต้องดูด้วยว่าเซิฟเวอร์ที่เราใช้นั้น ใช้ PHP รุ่นไหนอยู่

Hello World

PHP นั้นเน้นการทำงานบนเว็บเซิฟเวอร์เป็นหลัก ถ้ามีโฮสต์ที่รองรับ PHP อยู่แล้วก็ทดลองอัพโหลดไฟล์ และเรียกใช้ผ่านเบราว์เซอร์ได้ แต่ถ้ายังไม่มี หากอยู่บน Windows แนะนำให้ติดตั้ง XAMPP (Portable) แต่หากใช้ Linux Distro ก็ติดตั้งแพ็กเก็จ Apache และ PHP ลงไปในเครื่อง

เมื่อเรียบร้อยแล้วก็เปิด Text Editor ขึ้นมาใช้ตามสะดวก แล้วพิมพ์

บันทึกเป็นไฟล์ชื่อ hello.php แล้วอัพโหลด หรือเก็บไว้ในโพลเดอร์ที่ Apache สามารถเข้าถึงได้ (ถ้าเป็น XAMPP จะอยู่ที่ .../xampp/htdocs/ ถ้าเป็น Apache บน Linux ที่ไม่ได้ปรับแต่งอะไรจะเป็น /var/www/) เปิดเบราว์เซอร์ไปที่ http://localhost/hello.php (หากเก็บไว้ในไดเร็คทอรี่ย่อยอื่น ๆ ก็ต้องพิมพ์ให้ตามนั้น) เบราว์เซอร์จะแสดง Hello World! สีดำบนพื้นสีขาวให้

แถม: ถ้าต้องการดูรายละเอียดของเว็บเซิฟเวอร์ที่ใช้ รวมทั้งรุ่นของ PHP ให้ใช้ phpinfo()

3 comments:

  1. นอกจากตัวแปรแบบ dynamic น่าจะบอกว่าเป็น weak type ด้วยนะครับ เช่นการที่สามารถนำ 1 (ตัวเลข) มาเปรียบเทียบแบบ == กับ "1" (ตัวอักษร) ได้

    ReplyDelete
    Replies
    1. ปล. phpinfo สามารถเรียกแบบนี้ได้ด้วยนะ <?phpinfo()?>

      Delete
    2. มันใช้ shorthand ครับ ผมขอเขียนตาม coding standard ละกันครับ : )

      Delete