Web Development

PHP Basic

สำหรับคนที่เริ่มต้นเขียน PHP หรืออยากจะเรียนรู้เกี่ยวกับ PHP ให้มากขึ้น ลองมาอ่านบทความนี้กัน

02 มกราคม 20239 นาที
0
PHP Basic
Table of Contents

ในครั้งก่อนผมได้ทำบทความเกี่ยวกับ PHP นั่นก็คือ มาเริ่มเรียนเขียนโปรแกรมด้วยภาษา PHP กันเถอะ (PHP for Beginners) ซึ่งจะแตกต่างจากบทความนี้ตรงที่ บทความนี้จะเน้นแทบทุกเรื่องที่ต้องใช้ใน PHP โดยบทความที่ผมเขียนก่อนหน้า อาจจะข้ามหลายๆ เรื่องไป แต่บทความนี้จะเจาะลึกมากกว่าบทความก่อนหน้า ต้องขอออกตัวก่อนว่า ผมพึ่งจะเริ่มหัดเขียน PHP ได้ไม่นานเท่าไหร่ แต่ผมจะพยายามที่จะเขียนบทความนี้ให้ครบทุกเรื่องที่เกี่ยวข้องกับ PHP และอธิบายให้เข้าใจง่ายมากที่สุด

Introduction

มารู้จัก PHP เพิ่มอีกสักนิด PHP คือ server-side scripting ที่ออกแบบมาสำหรับการใช้งานบนเว็บ หมายความว่า มันถูกออกแบบมาสำหรับการทำงานที่ฝั่ง Server ซึ่งหากใครที่เริ่มทำเว็บมาบ้างจะได้ยินคำว่า Server Side และ Client Side อยู่บ่อยๆ

Pre-requisites

ก่อนจะไปเริ่มต้นเขียน PHP กัน เราจะเป็นที่จะต้องติดตั้ง PHP ไว้ในเครื่องก่อน ซึ่งผมก็มีการติดตั้งอยู่หลากหลายแบบด้วยกัน เริ่มตั้งแต่

ติดตั้ง PHP

หรือจะโปรแกรมที่มัดรวมทุกอย่างมาให้แล้วก็

  • Laragon 🐘 สำหรับ Windows ผมแนะนำอันนี้ เป็นพิเศษ
  • MAMP
  • XAMPP
  • WAMP

ติดตั้ง Editor

Editor ใครจะใช้อันไหนก็ตามสะดวกเลยนะ ถ้าเตรียมเครื่องมือทุกอย่างพร้อมแล้ว ก็ไปเริ่มต้นเขียน PHP กันเลย

Echo

ก่อนจะไปเรื่องอื่น เราลองมาแสดงค่าอะไรบางอย่างออกทางหน้าจอกันก่อน เพื่อเช็คว่า PHP สามารถทำงานได้ โดยเราจะใช้คำสั่ง echo ในการแสดงค่าออกทางหน้าจอ

แต่ก่อนที่เราจะใช้คำสั่ง เราจำเป็นที่จำต้องเปิด tag <?php ขึ้นมาก่อน เพื่อที่จะบอกว่า ต้องส่วนนี้คือส่วนที่เป็นภาษา PHP และปิด tag ด้วย ?> เมื่อจบคำสั่ง PHP มาลองดูกัน

ผมจะทำการสร้าง folder สำหรับ Project PHP แล้ว สร้างไฟล์ index.php ขึ้นมา และเขียนคำสั่ง echo ดังนี้

PHP Logo
<?php echo 'Hello World!'; ?>
echo PHP

จากนั้นผมจะเปิด Terminal ขึ้นมา แล้วใช้คำสั่ง php -S localhost:8000 เพื่อที่จะรัน PHP Server ขึ้นมา (สามารถดูรายละเอียดได้ที่ รัน PHP Project ฉบับโคตรเร็วด้วย PHP CLI)

แล้วเปิด Browser ขึ้นมา แล้วพิมพ์ localhost:8000 ลงไป จะได้ผลลัพธ์ดังนี้

วิธีการรันไฟล์ก็อยู่ที่เครื่องมือที่ท่านใช้เลยนะ หลายท่านอาจจะไม่ได้ใช้ PHP CLI เหมือนกับผม วิธีการจะแตกต่างกันไป แต่หลักๆ ก็คือ ต้องมี Server ที่รองรับ PHP ให้ทำงาน และเปิดไฟล์ index.php ขึ้นมาให้เรา จะใช้เครื่องมือไหน ก็ตามสะดวกเลย

echo PHP

Variables

ไม่ว่าจะเริ่มต้นเรียนเขียนภาษาไหน ตัวแรกสุดที่ต้องรู้ก็คือการประกาศตัวแปร ซึ่งใน PHP จะใช้ $ นำหน้าตัวแปรที่เราต้องการจะประกาศ

เช่น

PHP Logo
<?php $name = '9mza'; $age = 60; $isMale = true; ?>

เราสามารถสามารถใช้ echo ในการแสดงผลตัวแปรได้เช่นกัน

PHP Logo
echo $name; // 9mza echo $age; // 20 echo $isMale; // 1

Data Types

ใน PHP มี 8 ชนิดของ Data Type ที่เราสามารถใช้งานได้ ได้แก่

  • String
  • Integer
  • Float
  • Boolean
  • Array
  • Object
  • Null
  • Resource

String

String คือ ข้อความ ซึ่งเราสามารถประกาศได้โดยใช้ '' หรือ "" ก็ได้

PHP Logo
<?php $name = '9mza'; $name = "9mza"; ?>

ซึ่งความแตกต่างของ '' กับ "" คือ ใน '' จะไม่สามารถใช้ตัวแปรได้ แต่ใน "" สามารถใช้ตัวแปรได้

PHP Logo
<?php $name = '9mza'; echo 'My name is $name'; // My name is $name echo "My name is $name"; // My name is 9mza ?>

Integer

Integer คือ จำนวนเต็ม ซึ่งเราสามารถประกาศได้โดยใช้ตัวเลขเท่านั้น โดยจะเป็นจำนวนเต็มบวกหรือลบก็ได้

PHP Logo
<?php $first = 60; $second = -60; ?>

Float

Float คือ จำนวนทศนิยม ซึ่งเราสามารถประกาศได้โดยใช้ตัวเลขเท่านั้น โดยจะเป็นจำนวนเต็มบวกหรือลบก็ได้

PHP Logo
<?php $price = 20.5; $discount = -20.5; ?>

Boolean

Boolean คือ ค่าที่มีค่าเป็น true หรือ false เท่านั้น

PHP Logo
<?php $isMale = true; $isFemale = false; ?>

Array

Array คือ ตัวแปรที่สามารถเก็บข้อมูลหลายๆ ค่าได้ ซึ่งเราสามารถประกาศได้ 2 แบบ คือ

  • แบบแรก ใช้ array() ในการประกาศ
PHP Logo
<?php $days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'); ?>
  • แบบที่สอง ใช้ [] ในการประกาศ
PHP Logo
<?php $days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; ?>

เราจะจะใช้ print_r() เพื่อดูข้อมูลใน Array ว่ามีอะไรบ้าง

PHP Logo
<?php print_r($days); // Array ( [0] => Monday [1] => Tuesday [2] => Wednesday [3] => Thursday [4] => Friday [5] => Saturday [6] => Sunday ) ?>

หรือจะใช้ var_dump() ก็ได้เหมือนกัน

PHP Logo
<?php var_dump($days); // array(7) { [0]=> string(6) "Monday" [1]=> string(7) "Tuesday" [2]=> string(9) "Wednesday" [3]=> string(8) "Thursday" [4]=> string(6) "Friday" [5]=> string(8) "Saturday" [6]=> string(6) "Sunday" } ?>

เราสามารถเข้าถึงข้อมูลใน Array ได้โดยการใช้ [] และใส่ index ของข้อมูลที่เราต้องการเข้าถึง

PHP Logo
<?php echo $days[0]; // Monday ?>

เราสามารถเก็บข้อมูลต่างชนิดกันได้ใน Array ได้

PHP Logo
<?php $person = ['9mza', 60, true]; ?>

Associative Array

Associative Array คือ ตัวแปรที่สามารถเก็บข้อมูลหลายๆ ค่าได้ แต่จะเก็บข้อมูลแบบ key-value ซึ่งเราสามารถประกาศได้โดยใช้ array() และใส่ key และ value ของข้อมูลที่เราต้องการเก็บ

PHP Logo
<?php $person = array('name' => '9mza', 'age' => 60, 'isMale' => true); ?>

เราสามารถเข้าถึงข้อมูลใน Associative Array ได้โดยการใช้ [] และใส่ key ของข้อมูลที่เราต้องการเข้าถึง

PHP Logo
<?php echo $person['name']; // 9mza ?>

เราสามารถเพิ่มข้อมูลใหม่เข้าไปใน Associative Array ได้โดยการใช้ [] และใส่ key ของข้อมูลที่เราต้องการเพิ่ม

PHP Logo
<?php $person['height'] = 170; ?>

หรือจะแก้ไขข้อมูลใน Associative Array ได้โดยการใช้ [] และใส่ key ของข้อมูลที่เราต้องการแก้ไข

PHP Logo
<?php $person['name'] = 'Bandit'; ?>

Object

Object คือ ตัวแปรที่สามารถเก็บข้อมูลหลายๆ ค่าได้ ซึ่งเราสามารถประกาศได้โดยใช้ new และชื่อคลาส

PHP Logo
$date = new DateTime();

เราสามารถเข้าถึงข้อมูลใน Object ได้โดยการใช้ -> และชื่อของ property ที่เราต้องการเข้าถึง

PHP Logo
<?php echo $date->format('Y-m-d H:i:s'); ?>

Null

Null คือ ค่าที่ไม่มีค่า ซึ่งเราสามารถประกาศได้โดยใช้ null

PHP Logo
<?php $name = null; ?>

Null เป็น Case insensitive ซึ่งหมายความว่า NULL กับ null จะถือว่าเป็นค่าเดียวกัน

Resource

Operator

Operator คือ ตัวดำเนินการ ซึ่งเราสามารถใช้ตัวดำเนินการเพื่อเปลี่ยนแปลงค่าของตัวแปรได้ โดยมีตัวดำเนินการทั้งหมด 4 ประเภท ได้แก่

  • Arithmetic Operator
  • Assignment Operator
  • Comparison Operator
  • Logical Operator

Arithmetic Operator

Arithmetic Operator คือ ตัวดำเนินการที่ใช้ในการคำนวณค่าตัวเลข โดยมีตัวดำเนินการทั้งหมด 5 ตัว ได้แก่

  • + บวก
  • - ลบ
  • * คูณ
  • ** ยกกำลัง
  • / หาร
  • % หารเอาเศษ
PHP Logo
<?php $a = 10; $b = 5; echo $a + $b; // 15 echo $a - $b; // 5 echo $a * $b; // 50 echo $a ** $b; // 100000 echo $a / $b; // 2 echo $a % $b; // 0 ?>

Assignment Operator

Assignment Operator คือ ตัวดำเนินการที่ใช้ในการกำหนดค่าให้กับตัวแปร โดยมีตัวดำเนินการทั้งหมด 5 ตัว ได้แก่

  • = กำหนดค่า
  • += บวกแล้วกำหนดค่า
  • -= ลบแล้วกำหนดค่า
  • *= คูณแล้วกำหนดค่า
  • /= หารแล้วกำหนดค่า
  • %= หารเอาเศษแล้วกำหนดค่า
PHP Logo
<?php $a = 10; $b = 5; $a += $b; // $a = $a + $b = 15 $a -= $b; // $a = $a - $b = 5 $a *= $b; // $a = $a * $b = 50 $a /= $b; // $a = $a / $b = 2 $a %= $b; // $a = $a % $b = 0 ?>

Comparison Operator

Comparison Operator คือ ตัวดำเนินการที่ใช้ในการเปรียบเทียบค่า โดยมีตัวดำเนินการทั้งหมด 6 ตัว ได้แก่

  • == เท่ากับ
  • === เท่ากับและเป็นชนิดเดียวกัน
  • != ไม่เท่ากับ
  • !== ไม่เท่ากับและไม่เป็นชนิดเดียวกัน
  • > มากกว่า
  • < น้อยกว่า
  • >= มากกว่าหรือเท่ากับ
  • <= น้อยกว่าหรือเท่ากับ
PHP Logo
<?php $a = 10; $b = 5; echo $a == $b; // false echo $a === $b; // false echo $a != $b; // true echo $a !== $b; // true echo $a > $b; // true echo $a < $b; // false echo $a >= $b; // true echo $a <= $b; // false ?>

ความแตกต่างระหว่าง == กับ === คือ == จะเปรียบเทียบค่าเท่ากัน แต่ === จะเปรียบเทียบค่าเท่ากันและเป็นชนิดเดียวกัน

PHP Logo
<?php $a = 10; $b = "10"; echo $a == $b; // true echo $a === $b; // false ?>

Logical Operator

Logical Operator คือ ตัวดำเนินการที่ใช้ในการเปรียบเทียบค่า โดยมีตัวดำเนินการทั้งหมด 3 ตัว ได้แก่

  • && ความหมายคือ และ โดยจะเป็นจริงเมื่อทั้งสองเงื่อนไขเป็นจริง
  • || หรือ or ความหมายคือ หรือ โดยจะเป็นจริงเมื่ออย่างน้อยหนึ่งเงื่อนไขเป็นจริง
  • ! ความหมายคือ ไม่เท่ากับ จะเป็นจริงเมื่อเงื่อนไขเป็นเท็จ
  • xor จะคล้ายๆ กับหรือ แต่จะแตกต่างกันตรง จะเป็นจริงเมื่อเงื่อนไขเป็นจริงเพียงอย่างเดียว
PHP Logo
<?php $a = 10; $b = 5; echo $a > 5 && $b < 10; // true echo $a > 5 || $b < 10; // true echo !($a > 5); // false echo $a > 5 xor $b < 10; // false echo $a > 5 xor $b > 10; // true ?>

Conditionals

Conditionals คือ เงื่อนไขในการทำงานของโปรแกรม

If , Else if , Else

การทำงานของ If ก็คือจะทำงานใน block if ถ้าเงื่อนไขนั้นเป็นจริง แต่ถ้าเงื่อนไขเป็นเท็จ จะทำงานใน block else แทน

PHP Logo
<?php $a = 10; $b = 5; if ($a > $b) { echo "a is greater than b"; } else { echo "a is less than b"; } ?>

ถ้าต้องการเพิ่มเงื่อนไข สามารถใช้ else if ได้

PHP Logo
<?php $grade = 75; if ($grade >= 80) { echo "A"; } else if ($grade >= 70) { echo "B"; } else if ($grade >= 60) { echo "C"; } else if ($grade >= 50) { echo "D"; } else { echo "F"; } // Result: B ?>

Switch

Switch จะคล้ายกับ If แต่จะเขียนในลักษณะเป็น case แทน ซึ่งถ้าเข้าเงื่อนไขไหน ก็จะทำงานใน case นั้น

PHP Logo
<?php $grade = 75; switch ($grade) { case $grade >= 80: echo "A"; break; case $grade >= 70: echo "B"; break; case $grade >= 60: echo "C"; break; case $grade >= 50: echo "D"; break; default: echo "F"; } // Result: B ?>

Ternary Operator

Ternary Operator คือ If แบบลดรูป โดยจะเขียนเป็น condition ? true : false คือ ถ้าเงื่อนไขเป็นจริง จะทำงานใน block true แต่ถ้าเงื่อนไขเป็นเท็จ จะทำงานใน block false

PHP Logo
<?php $today = "Monday"; echo $today == "Monday" ? "Go to work" : "Go to Rest";

Loop

Loop คือ การทำงานซ้ำๆ จนกว่าเงื่อนไขจะเป็นเท็จ โดยมี 3 ประเภทคือ

  • for จะทำงานก่อน แล้วจึงตรวจสอบเงื่อนไข
  • while จะตรวจสอบเงื่อนไขก่อน แล้วจึงทำงาน
  • do while จะทำงานก่อน 1 ครั้ง แล้วจึงตรวจสอบเงื่อนไข

For

PHP Logo
<?php for ($i = 0; $i < 10; $i++) { echo $i; } ?>

While

PHP Logo
<?php $i = 0; while ($i < 10) { echo $i; $i++; } ?>

Do While

PHP Logo
<?php $i = 0; do { echo $i; $i++; } while ($i < 10); ?>

Foreach

Foreach จะใช้กับ Array โดยจะทำงานตามจำนวนของ Array ที่เรากำหนด

PHP Logo
<?php $fruits = ["Apple", "Banana", "Orange"]; foreach ($fruits as $fruit) { echo $fruit; } ?>

เราสามารถใช้ Foreach กับ Array ที่มี Key ได้ด้วย

PHP Logo
<?php $fruits = [ "Apple" => "🍎", "Banana" => "🍌", "Orange" => "🍊" ]; foreach ($fruits as $key => $value) { echo $key . " " . $value; // Apple 🍎 Banana 🍌 Orange 🍊 } ?>

Exercise

หลังจากที่เราได้เรียนรู้หลายๆ เรื่องไปแล้ว มาลองทำแบบฝึกหัดกันดูกันบ้าง

PHP Logo
$peoples = [ ["name" => "John", "age" => 20], ["name" => "Peter", "age" => 18], ["name" => "Mary", "age" => 13], ["name" => "Jane", "age" => 30], ["name" => "Bob", "age" => 14], ["name" => "Alice", "age" => 24], ["name" => "Steve", "age" => 17], ["name" => "Kevin", "age" => 19], ["name" => "David", "age" => 21], ["name" => "Tom", "age" => 23], ]; $adult_count = 0; $teen_count = 0; $can_apply_job = 0; foreach ($peoples as $people) { if ($people["age"] >= 18) { $adult_count++; } else { $teen_count++; } if ($people["age"] >= 18 && $people["age"] <= 25) { $can_apply_job++; } } echo "Adult: " . $adult_count . " Teen: " . $teen_count . " Can Apply Job: " . $can_apply_job;

Break and Continue

Break

Break จะใช้ในการหยุดการทำงานของ Loop

ตัวอย่าง ต้องการให้หยุดการทำงานเมื่อ i เท่ากับ 5

PHP Logo
<?php for ($i = 0; $i < 10; $i++) { if ($i == 5) { break; } echo $i; } ?> // 01234

Continue

Continue จะใช้ในการข้ามการทำงานของ Loop ไปยัง Loop ถัดไป

ตัวอย่าง ต้องการให้ข้ามการทำงานเมื่อ i เท่ากับ 5

PHP Logo
<?php for ($i = 0; $i < 10; $i++) { if ($i == 5) { continue; } echo $i; } // 012346789 ?>

Add PHP Loop and Condition to HTML

หลังจากที่เราได้เรียนเรื่อง Loop มาบ้างแล้ว ทีนี้เราลองนำมันมาแสดงผลบน HTML กันดูบ้าง (ผมจะคิดไปเองว่าท่านเข้าใจ HTML อยู่แล้ว 😁)

โดยเราจะเริ่มสร้างโครง HTML กันก่อน

HTML Logo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body></body> </html>

จากนั้นเราจะแทรก PHP ลงไปในส่วนของ Body

PHP Logo
<?php $countries = [ "Thailand" => "🇹🇭", "Japan" => "🇯🇵", "China" => "🇨🇳", "Korea" => "🇰🇷", "USA" => "🇺🇸", ]; foreach ($countries as $country => $flag) { echo "<p>$country $flag</p>"; } ?>

หรือจะ Loop แบบนี้ก็ได้

PHP Logo
<?php $countries = [ "Thailand" => "🇹🇭", "Japan" => "🇯🇵", "China" => "🇨🇳", "Korea" => "🇰🇷", "USA" => "🇺🇸", ]; foreach ($countries as $key => $value) : ?> <p> <?= $key ?> <?= $value ?> </p> <?php endforeach; ?>

เปิด Browser แล้วเราจะเห็นผลลัพธ์ดังนี้

foreach PHP
Tags:PHP

คลิกเพื่อแสดงความคิดเห็น