PHP ซึ่งย่อมาจาก "Hypertext Preprocessor" เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์แบบโอเพนซอร์สที่ออกแบบมาเป็นหลักสำหรับการพัฒนาเว็บ แต่ยังใช้เป็นภาษาการเขียนโปรแกรมทั่วไปอีกด้วย มันเป็นที่รู้จักอย่างกว้างขวางในเรื่องความง่ายในการใช้งานและความยืดหยุ่นในการสร้างหน้าเว็บแบบไดนามิก การโต้ตอบกับฐานข้อมูลอย่างมีประสิทธิภาพ และการจัดการฟอร์ม PHP สามารถฝังลงใน HTML และเหมาะสำหรับเซิร์ฟเวอร์เว็บ โดยในปี 2023 PHP มีส่วนช่วยในการทำงานของเว็บไซต์จำนวนมากทั่วโลก รวมถึงแพลตฟอร์มใหญ่ๆ เช่น WordPress, Facebook และ Wikipedia
PHP ถูกสร้างขึ้นครั้งแรกโดยโปรแกรมเมอร์ชาวเดนมาร์ก-แคนาดา Rasmus Lerdorf ในปี 1993 มันเริ่มต้นจากชุดของไบนารี Common Gateway Interface (CGI) ซึ่ง Lerdorf ใช้เพื่อดูแลหน้าโฮมเพจส่วนตัวของเขา เมื่อความสนใจในโครงการเริ่มต้นของเขาเพิ่มขึ้น Lerdorf ได้ขยายมันเป็น PHP/FI (Personal Home Page/Forms Interpreter) ในปี 1995 ซึ่งอนุญาตให้ผู้ใช้สามารถรวบรวมข้อมูลฟอร์มและจัดการเนื้อหาได้ง่ายขึ้น
หลังจากการเปิดตัว PHP/FI ภาษาได้เห็นการมีส่วนร่วมจากชุมชนที่กว้างขึ้น นำไปสู่การเปิดตัว PHP 3 ในปี 1998 ซึ่งพัฒนาโดย Andi Gutmans และ Zeev Suraski รุ่นนี้ได้นำเสนอเครื่องยนต์ที่มีความแข็งแกร่งมากขึ้นและฟีเจอร์ใหม่ๆ ซึ่งวางรากฐานสำหรับ PHP 4 ในปี 2000 PHP 5 ตามมาในปี 2004 โดยนำเสนอความสามารถในการเขียนโปรแกรมเชิงวัตถุ (OOP) และส่วนขยาย PHP Data Objects (PDO) สำหรับการโต้ตอบกับฐานข้อมูล
ตั้งแต่นั้นมา PHP ได้เห็นการพัฒนาต่อเนื่อง โดย PHP 7 ถูกปล่อยออกมาในปลายปี 2015 โดยมุ่งเน้นที่การปรับปรุงประสิทธิภาพและฟีเจอร์ใหม่ของภาษา จนถึงปี 2021 PHP 8 ถูกปล่อยออกมา โดยนำเสนอการคอมไพล์แบบ JIT (Just In Time), ประเภท union, อาร์กิวเมนต์ที่มีชื่อ และแอตทริบิวต์ ซึ่งทำให้ PHP ยังคงมีความสำคัญในด้านการพัฒนาเว็บสมัยใหม่ PHP ยังคงเป็นผู้เล่นที่สำคัญในภูมิทัศน์ของภาษาการเขียนโปรแกรม โดยมีระบบนิเวศที่กว้างขวางของเฟรมเวิร์ก ไลบรารี และทรัพยากรจากชุมชน
ใน PHP ตัวแปรจะถูกประกาศด้วยสัญลักษณ์ดอลลาร์ ($
) นำหน้าชื่อตัวแปร
$greeting = "สวัสดี, โลก!";
PHP รองรับทั้งอาร์เรย์ที่มีดัชนีและอาร์เรย์ที่มีการเชื่อมโยง ซึ่งสามารถเก็บค่าหลายค่าได้
$fruits = array("แอปเปิ้ล", "กล้วย", "ส้ม");
$associativeArray = array("ชื่อ" => "จอห์น", "อายุ" => 30);
ฟังก์ชันใน PHP สามารถกำหนดได้โดยใช้คีย์เวิร์ด function
ซึ่งช่วยให้สามารถนำโค้ดกลับมาใช้ใหม่ได้
function add($a, $b) {
return $a + $b;
}
PHP มีโครงสร้างควบคุมทั่วไป เช่น if
, else
, และ switch
สำหรับตรรกะเงื่อนไข
if ($age >= 18) {
echo "ผู้ใหญ่";
} else {
echo "เยาวชน";
}
PHP รองรับลูปหลายประเภท รวมถึง for
, while
, และ foreach
foreach ($fruits as $fruit) {
echo $fruit;
}
PHP รองรับแนวคิด OOP รวมถึงคลาสและวัตถุ
class Car {
public $color;
function __construct($color) {
$this->color = $color;
}
}
$myCar = new Car("สีน้ำเงิน");
PHP มีการจัดการข้อผิดพลาดโดยใช้ข้อยกเว้นด้วย try
, catch
, และ finally
try {
throw new Exception("เกิดข้อผิดพลาด");
} catch (Exception $e) {
echo $e->getMessage();
}
PHP อนุญาตให้รวมไฟล์สำหรับการเขียนโปรแกรมแบบโมดูล
include 'header.php';
PHP มีตัวแปรในตัวหลายตัวที่เรียกว่า superglobals ซึ่งสามารถเข้าถึงได้จากทุกขอบเขต
echo $_POST['username'];
ตั้งแต่ PHP 7 เป็นต้นไป สามารถใช้การประกาศประเภทเพื่อบังคับความปลอดภัยของประเภท
function sum(int $a, int $b): int {
return $a + $b;
}
สภาพแวดล้อมการพัฒนาที่รวมกัน (IDEs) ที่ใช้กันทั่วไปสำหรับ PHP ได้แก่ PhpStorm, Visual Studio Code, NetBeans และ Eclipse PDT แต่ละตัวมีเครื่องมือที่แข็งแกร่งสำหรับการดีบัก การเติมโค้ด และการจัดการโปรเจกต์
PHP เป็นภาษาที่ถูกตีความเป็นหลัก โดยพึ่งพา Zend Engine สำหรับการประมวลผลสคริปต์ PHP สามารถทำงานในสภาพแวดล้อมเซิร์ฟเวอร์ด้วยซอฟต์แวร์สแต็กเช่น XAMPP หรือ LAMP
โดยทั่วไป โปรเจกต์ PHP จะถูกจัดโครงสร้างในไดเรกทอรีที่มีไฟล์ต้นฉบับ ไฟล์การตั้งค่า และการพึ่งพา Composer เป็นผู้จัดการการพึ่งพาที่ใช้กันทั่วไปสำหรับแอปพลิเคชัน PHP ซึ่งช่วยให้การจัดการแพ็กเกจและการโหลดอัตโนมัติง่ายขึ้น
PHP ถูกใช้เป็นหลักสำหรับการเขียนสคริปต์ฝั่งเซิร์ฟเวอร์ แต่การใช้งานของมันยังขยายไปถึง:
เมื่อเปรียบเทียบกับภาษาต่างๆ เช่น JavaScript, Python และ Ruby PHP ยังคงเป็นตัวเลือกที่นิยมสำหรับการพัฒนาฝั่งหลังของเว็บเนื่องจากไลบรารีและเฟรมเวิร์กที่กว้างขวาง อย่างไรก็ตาม ในขณะที่ PHP ถูกออกแบบมาโดยเฉพาะสำหรับแอปพลิเคชันเว็บ ภาษาอย่าง Python และ Ruby มักถูกใช้สำหรับงานการเขียนโปรแกรมทั่วไปมากกว่า
การแปลจากซอร์สเป็นซอร์ส หรือการแปลโค้ด เป็นการแปลงโค้ดจากภาษาการเขียนโปรแกรมหนึ่งไปยังอีกภาษาหนึ่ง มีเครื่องมือหลายตัวที่มีอยู่สำหรับ PHP: