คู่มือสำหรับผู้เริ่มต้นใช้งาน PHP

เริ่มโด Ovtak, ธ.ค 31, 2022, 01:23 ่นเที่ยง

หัวอก่อนหน้า - หัวข้อถัดไ

Ovtak

PHP เป็นภาษาโปรแกรมที่ออกแบบมาให้เป็นภาษาสคริปต์สำหรับใช้งานทั่วไป ซึ่งหมายความว่าสามารถใช้สร้างแอปพลิเคชันและโปรแกรมต่างๆ ได้หลากหลาย แต่จะเน้นไปที่การพัฒนาเว็บเป็นหลัก เปิดตัวในปี 1995 และสร้างโดย Rasmus Lerdorf โปรแกรมเมอร์ชาวเดนมาร์ก-แคนาดา

_LINE_ และ _FILE_ เป็นค่าคงที่
__FILE__ และ _LINE__ เป็นค่าคงที่สองค่าใน PHP ที่ค่อนข้างมีประโยชน์ ค่าคงที่เหล่านี้ให้ไดเร็กทอรีปัจจุบันและหมายเลขบรรทัดตามลำดับ นอกจากนี้ยังใช้กันทั่วไปในแอปพลิเคชัน PHP __FILE__ เป็นค่าคงที่ทั่วไป ส่งคืนเส้นทางที่สมบูรณ์ไปยังไฟล์ PHP ที่กำลังดำเนินการอยู่ นอกจากนี้ยังใช้งานได้กับไฟล์ที่เชื่อมโยงด้วยสัญลักษณ์ สิ่งนี้มีประโยชน์สำหรับการดีบัก ในทำนองเดียวกัน __LINE__ เป็นค่าคงที่อื่นที่มีประโยชน์ในการดีบัก เป็นหมายเลขบรรทัดปัจจุบันของไฟล์ที่แยกวิเคราะห์ ฟังก์ชันนี้ไม่คำนึงถึงขนาดตัวพิมพ์ นอกจากนี้ยังมีประโยชน์กับ __FILE__ นอกจากค่าคงที่เหล่านี้แล้ว PHP ยังมีค่าคงที่มหัศจรรย์อีกจำนวนหนึ่ง โดยทั่วไป ค่าเหล่านี้เป็นค่าคงที่ที่กำหนดไว้ล่วงหน้าซึ่งได้รับการแก้ไขในเวลาคอมไพล์ บางส่วนที่มีประโยชน์ที่สุดคือ __FILE__ และอีกสองสามรายการ ตัวอย่างเช่น __DIR__ เป็นค่าคงที่วิเศษที่ใช้เพื่อระบุไดเร็กทอรีปัจจุบัน ซึ่งเป็นคุณลักษณะที่ไม่มีในภาษา PHP เวอร์ชันก่อนหน้า

_CLASS_ และ _METHOD_ เป็นค่าคงที่
เมื่อวัตถุใหม่ถูกสร้างขึ้นโดยใช้คลาส PHP จะเรียกเมธอด __construct โดยอัตโนมัติ เป็นฟังก์ชันในตัวที่เริ่มต้นคุณสมบัติของวัตถุ หลังจากวัตถุถูกทำลาย จะเรียกเมธอดตัวทำลาย ค่าคงที่ไม่สามารถกำหนดค่าใหม่ได้ซึ่งแตกต่างจากตัวแปรปกติ ตัวทำลายมักใช้สำหรับการดำเนินการล้างข้อมูล ค่าคงที่ของคลาสเป็นคุณสมบัติที่ไม่เปลี่ยนรูปแบบที่ประกาศในคลาส สามารถเข้าถึงได้ผ่านคีย์เวิร์ด self, static call หรือผ่านฟังก์ชัน ค่าคงที่สามารถทำเครื่องหมายเป็นสาธารณะหรือส่วนตัว ขึ้นอยู่กับคำจำกัดความ ใน PHP 8.1 ยังรองรับแฟล็กสุดท้ายบนค่าคงที่ของอินเตอร์เฟสด้วย ค่าคงที่คือข้อมูลที่จัดเก็บไว้ในหน่วยความจำของคอมพิวเตอร์ มันถูกกำหนดโดยชื่อ ไม่สามารถเปลี่ยนแปลงได้เว้นแต่จะได้รับอนุญาตอย่างชัดแจ้ง ชื่อของค่าคงที่ต้องเป็นตัวพิมพ์ใหญ่และมีเครื่องหมายขีดล่าง นิพจน์อาร์เรย์และสเกลาร์ไม่ใช่ค่าคงที่ ค่าคงที่ของคลาสไม่สามารถเข้าถึงได้ผ่าน BAR แม้ว่าจะสามารถเข้าถึงได้จากอินสแตนซ์ออบเจกต์ใดๆ เนื่องจากมีการจัดสรรเพียงครั้งเดียวต่อชั้นเรียน

ฟังก์ชัน ereg() และ preg_match()
Ereg และ preg_match เป็นสองฟังก์ชันใน PHP ที่ใช้ค้นหาอินสแตนซ์ของสตริงภายในอีกอันหนึ่ง ฟังก์ชันเหล่านี้ทำงานโดยการเปรียบเทียบนิพจน์ทั่วไปกับหัวเรื่องของสตริง หากรูปแบบตรงกัน ฟังก์ชันจะส่งกลับค่าบูลีน มิฉะนั้นจะส่งกลับค่าเท็จ ereg และ preg_match มีห้าพารามิเตอร์ รวมถึงอินพุต การจับคู่ และรูปแบบ แฟล็กตัวแก้ไข 'i' ระบุว่าการค้นหาไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ นอกจากนี้ ตัวเลือก /u ยังมีประโยชน์สำหรับนิพจน์ทั่วไปที่ตรงกับอักขระ Unicode หรือสคริปต์ ereg ส่งคืนนิพจน์ทั่วไปที่ตรงกันครั้งแรกในสตริง หรือส่งกลับ FALSE หากไม่ส่งกลับ ตัวอย่างเช่น ถ้าหัวเรื่องคือคำว่า "PHP" และรูปแบบคือ "php" ereg จะส่งคืนค่า 1 สำหรับการจับคู่ครั้งแรก Preg_match เป็นเวอร์ชันปรับปรุงเล็กน้อยของ ereg ใช้ไวยากรณ์นิพจน์ทั่วไปที่เข้ากันได้กับ Perl และรองรับการจับคู่ที่ไม่คำนึงถึงขนาดตัวพิมพ์ ในทางกลับกัน ereg คำนึงถึงขนาดตัวพิมพ์และไม่สามารถใช้กับวงเล็บได้ จึงแนะนำให้ใช้ preg แทน

ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษรหรือขีดล่าง
ตัวแปรใน PHP เป็นคอนเทนเนอร์ที่เก็บข้อมูลและค่าต่างๆ นอกจากนี้ยังใช้เพื่อจัดการข้อมูลในแอปพลิเคชัน สิ่งสำคัญคือต้องทราบวิธีตั้งชื่อตัวแปร เนื่องจากชื่อที่ไม่ถูกต้องอาจนำไปสู่ผลลัพธ์ที่ไม่คาดคิดได้ ตัวแปรใน PHP ใช้เพื่อจุดประสงค์หลายอย่าง เช่น การเก็บข้อมูล ที่อยู่หน่วยความจำ และค่าตัวเลข ตัวแปรเหล่านี้สามารถใช้ได้ทุกที่ในโปรแกรม และสามารถเปลี่ยนแปลงหรือปรับปรุงเนื้อหาได้ ตัวแปรเป็นแนวคิดใหม่สำหรับโปรแกรมเมอร์บางคน อย่างไรก็ตาม มีกฎพื้นฐานบางประการที่ควรปฏิบัติตามเมื่อตั้งชื่อตัวแปรของคุณ ตัวอย่างเช่น ตัวแปรที่ง่ายที่สุดใน PHP คือสตริงว่าง วิธีตั้งชื่อตัวแปรใน PHP ที่ดีที่สุดคือเลือกชื่อที่สื่อความหมาย ชื่อที่ดีไม่เพียงแต่จะทำให้โค้ดอ่านง่ายขึ้น แต่ยังช่วยป้องกันข้อผิดพลาดอีกด้วย แม้ว่า PHP จะไม่มีคำสั่งให้ตั้งชื่อตัวแปร แต่ก็มีชุดของตัวแปรที่กำหนดไว้ล่วงหน้า บางส่วนรวมถึงจำนวนเต็ม สตริง อาร์เรย์ และวันที่ นอกจากนี้ยังมีวิธีการกำหนดค่าให้กับตัวแปร

โครงสร้าง List() เลิกใช้แล้ว
PHP 8.0 แนะนำความสามารถในการกำหนดพารามิเตอร์และประเภทการส่งคืนสำหรับฟังก์ชันและวิธีการภายใน ประเภทการส่งคืนควรเข้ากันได้กับลายเซ็นของฟังก์ชัน PHP 7.2 เลิกใช้ฟังก์ชัน each() เมธอดนี้ส่งคืนคีย์องค์ประกอบและค่าของอาร์เรย์ PHP 8.2 ยังแนะนำคุณสมบัติใหม่หลายอย่าง ซึ่งรวมถึงไวยากรณ์ Heredoc ที่ยืดหยุ่น ความสามารถในการใช้การกำหนดการอ้างอิงในการทำลายอาร์เรย์และการปรับปรุงดังกล่าว ทีมงานหลักของ PHP ได้แก้ปัญหาลำดับความสำคัญของตัวดำเนินการการต่อข้อมูลแล้วบางส่วน ได้ย้ายตัวดำเนินการ elvis ไปที่จุดเริ่มต้นของบรรทัดและเลื่อนตัวดำเนินการด้านซ้ายไปยังจุดสิ้นสุดของบรรทัด วงเล็บปีกกาใช้เพื่อเข้าถึงการชดเชยสตริง อย่างไรก็ตาม ไม่เหมาะสำหรับการพุชองค์ประกอบลงในอาร์เรย์ ควรสร้างอาร์เรย์เช่นอาร์กิวเมนต์ของฟังก์ชัน เมื่อเรียกใช้ฟังก์ชัน อย่าลืมใส่เครื่องหมายปีกกาให้ถูกต้อง ใน PHP 7.0 จำเป็นต้องมีวงเล็บปีกกาสำหรับตัวแปรทางอ้อม ควรวางไว้ที่ท้ายบรรทัดและเยื้องอย่างถูกต้อง

ฟังก์ชัน Preg_match() เลิกใช้แล้ว
Preg_match ไม่ใช่หนึ่งในฟังก์ชันที่เลิกใช้ใน PHP แม้ว่าจะไม่ได้ไร้ประโยชน์อย่างสมบูรณ์ แต่ก็อาจไม่เกี่ยวข้องกับแพลตฟอร์มเวอร์ชันหลักถัดไป นั่นคือ เว้นแต่คุณจะอัปเดตรูปแบบของคุณ ฟังก์ชัน preg_match เป็นหนึ่งในหลายฟังก์ชันที่รวมอยู่ในส่วนขยาย Perl Compatible Regular Expressions (PCRE) ข้อเสียเปรียบหลักของ PCRE คืออาจมีผลเสียต่อประสิทธิภาพและความไม่สอดคล้องกัน อย่างไรก็ตาม PCRE2 มีข้อดีบางประการ มันทำสิ่ง regex ตามปกติให้คุณ แต่ต้องใช้ตัวดัดแปลงรูปแบบเพื่อแสดงความไวของตัวพิมพ์เล็กและใหญ่ การใช้ฟังก์ชัน preg_match นั้นเหมือนกับการใช้ ereg แต่ไม่ใช่ทุกฟังก์ชันที่มีความสามารถเหมือนกัน ตัวอย่างเช่น เป็นไปไม่ได้ที่จะจับคู่สตริงย่อยทุกรายการในอาร์เรย์ โชคดีที่ฟังก์ชัน preg_replace สามารถทำหน้าที่แทนได้ นอกจากนี้ยังสามารถใช้แทนที่ฟังก์ชัน eregi ซึ่งเป็นฟังก์ชันที่เลิกใช้แล้วใน PHP 5.3

แหล่งที่มาของเอนโทรปีอาจเสี่ยงต่อการถูกโจมตี
มีการระบุข้อบกพร่องด้านความปลอดภัยใน PHP ซึ่งอาจทำให้ผู้โจมตีสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนได้ ผู้โจมตีสามารถใช้ประโยชน์จากแหล่งเอนโทรปีที่ไม่เพียงพอ ซึ่งอาจส่งผลให้คีย์ SSH อ่อนแอ ใบรับรอง SSL/TLS ที่ลงนามเอง หรือแม้แต่คีย์ SSH ที่ซ้ำกัน ข้อบกพร่องดังกล่าวส่งผลกระทบต่อเวอร์ชันของ PHP ในบางเครื่อง และผู้ใช้ควรอัปเดตทันที เอนโทรปีเป็นองค์ประกอบสำคัญของโปรโตคอลการเข้ารหัสสมัยใหม่ สามารถรวบรวมได้จากแหล่งฮาร์ดแวร์ เช่น การเคลื่อนไหวของเมาส์หรือระบบย่อยของหน่วยเก็บข้อมูล อย่างไรก็ตาม ไม่สามารถใช้ได้ในอุปกรณ์เครือข่ายเสมอไป ตัวอย่างเช่น เราเตอร์บางตัวไม่มีอุปกรณ์ต่อพ่วงสำหรับรวบรวมเอนโทรปี นอกจากนี้ แหล่งเดียวสามารถสร้างข้อมูลสุ่มได้หลายร้อยเมกะไบต์ต่อวินาที ซึ่งทำให้การทำให้เอนโทรปีพูลหมดไปนั้นเป็นไปไม่ได้ การโจมตีที่อาจเกิดขึ้นจะอาศัยการรู้สถานะภายในของตัวสร้างตัวเลขสุ่มหลอก (PRNG) ของ OpenSSL หากผู้โจมตีทราบลำดับเอาต์พุต พวกเขาอาจประนีประนอมได้ ในการทำเช่นนี้ พวกเขาจำเป็นต้องรู้ว่ารหัสทำงานเมื่อใดและเมื่อใดที่รหัสกำลังสร้างข้อมูลสุ่ม

นักแต่งเพลงและ PEAR เป็นผู้จัดการแพ็คเกจยอดนิยมสำหรับ PHP
PHP Composer เป็นหนึ่งในตัวจัดการแพ็คเกจที่ใช้กันอย่างแพร่หลายสำหรับ PHP เป็นผู้จัดการโครงการที่ช่วยให้นักพัฒนาสามารถติดตั้งและดึงไลบรารีและการอ้างอิง PHP จากที่เก็บส่วนกลางได้อย่างง่ายดาย มีตัวจัดการแพ็คเกจหลักสองตัวสำหรับ PHP, PEAR และ Composer ระบบเหล่านี้แตกต่างกันแต่มีความคล้ายคลึงกันอยู่บ้าง ที่เก่าแก่ที่สุดในสองคนคือ PEAR ซึ่งเป็นส่วนขยาย PHP และที่เก็บแอปพลิเคชัน ระบบนี้ได้รับการพัฒนาในปี 2546 แม้ว่าจะยังคงใช้งานอยู่ แต่นักพัฒนาจำนวนมากได้เปลี่ยนไปใช้ตัวเลือกอื่นแล้ว นักแต่งเพลงเปิดตัวเมื่อแปดปีที่แล้ว ตั้งแต่นั้นมาก็กลายเป็นตัวจัดการแพ็คเกจโดยพฤตินัยสำหรับ PHP เฟรมเวิร์กยอดนิยมหลายตัววางตำแหน่งตัวเองให้ใช้เทคโนโลยีนี้ นักแต่งเพลงยังมีตัวโหลดอัตโนมัติ โดยพื้นฐานแล้ว autoloader เป็นโปรแกรมซอฟต์แวร์ที่ดึงไลบรารีและการอ้างอิงที่จำเป็นทั้งหมดสำหรับโปรเจ็กต์ PHP เมื่อใช้ฟังก์ชันนี้ กระบวนการตั้งโปรแกรมทั้งหมดจะคล่องตัวขึ้น คุณสมบัติอีกอย่างของนักแต่งเพลงคือให้ทดลองใช้ฟรี 14 วัน นี่เป็นสิ่งจูงใจที่น่าดึงดูดให้ลองใช้เครื่องมือนี้

Laravel ถูกเรียกเก็บเงินเป็น "The PHP Framework for Web Artisans"
ไม่ใช่เพื่อจิบกาแฟที่แพงที่สุดที่คุณปรารถนาที่จะจิบ แต่ Laravel ไม่ใช่ถ้วยชาทั่วไปของ joe ด้วย Laravel คุณจะได้รับเครื่องเสมือนที่รันซีพียูและแรมได้ Laravel มีชุมชนโอเพ่นซอร์ส ดังนั้นคุณจะได้เป็นเพื่อนที่ดี ด้วยค่าธรรมเนียมเริ่มต้นเพียงเล็กน้อย คุณจะได้รับการปฏิบัติเหมือนเป็นร็อคสตาร์ นี่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้ข้อมูลเชิงลึกของเว็บแอปพลิเคชันโดยไม่ต้องเสียค่าใช้จ่ายในระดับมหาวิทยาลัย นอกจากนี้ Laravel ยังมีอินเทอร์เฟซที่ลื่นไหลสำหรับการปรับใช้และการจัดการเครือข่ายแบบเฉพาะกิจ