PHP:
การแทรกค่าลงในสตริง
วิธีการ:
ใน PHP คุณสามารถแทรกสตริงโดยใช้เครื่องหมายคำพูดคู่หรือไวยากรณ์ heredoc:
$name = "World";
echo "Hello, $name!"; // ผลลัพธ์: Hello, World!
// การใช้ curly braces สำหรับตัวแปรที่ซับซ้อนกว่า
$object = new stdClass();
$object->greeting = "Hello";
echo "{$object->greeting}, $name!"; // ผลลัพธ์: Hello, World!
// ไวยากรณ์ Heredoc สำหรับสตริงหลายบรรทัด
$heredoc = <<<EOT
This is a string that contains $name within it.
You can write as much as you want here.
EOT;
echo $heredoc; // ผลลัพธ์: This is a string that contains World within it.
หมายเหตุ: เครื่องหมายคำพูดเดี่ยวจะไม่แทรก:
echo 'Hello, $name!'; // ผลลัพธ์: Hello, $name!
การศึกษาลึก
ก่อนที่ PHP จะมีการแทรก การต่อสตริงกับตัวดำเนินการจุด (.) เป็นวิธีที่ใช้ ตัวอย่างเช่น:
echo 'Hello, ' . $name . '!';
การแทรกช่วยให้การทำสิ่งนี้ง่ายขึ้นโดยการประมวลผลตัวแปรโดยตรงภายในสตริง
การแทรกสตริงได้มีมาตั้งแต่ PHP 4 แต่การใช้นิพจน์ที่ซับซ้อนภายใน curly braces ได้รับความยืดหยุ่นมากขึ้นด้วย PHP 7 ด้วยการปรับปรุงเหล่านี้ PHP ได้ทำให้การฝังตัวแปรใดๆ รวมถึงคุณสมบัติของอ็อบเจ็กต์และองค์ประกอบของอาร์เรย์เข้ากับสตริงง่ายขึ้น
มีทางเลือกอื่นๆ ในการแทรก เช่น การใช้ sprintf()
สำหรับสตริงที่มีการกำหนดรูปแบบหรือ implode()
สำหรับอาร์เรย์ การทางเลือกเหล่านี้บางครั้งอาจมอบการควบคุมการจัดรูปแบบสตริงที่ดีกว่า โดยเฉพาะสำหรับการท้องถิ่นและโครงสร้างที่ซับซ้อน
ในด้านการใช้งาน PHP มองหาตัวแปรภายในสตริงเมื่ออยู่ในเครื่องหมายคำพูดคู่หรือไวยากรณ์ heredoc และแทนที่ด้วยค่าของตัวแปร ตัวแปรวิเคราะห์จะไม่สนใจตัวหน้าดอลลาร์ ($) ในสตริงที่มีเครื่องหมายคำพูดเดี่ยว รักษาเหมือนกับอักขระปกติ
ดูเพิ่มเติม
- PHP: Strings - เอกสารแนะนำทางการของ PHP เกี่ยวกับสตริง
- PHP: Heredoc syntax - ส่วนละเอียดของ PHP manual เกี่ยวกับ Heredoc
- PHP: String Operators - เพิ่มเติมเกี่ยวกับการต่อสตริงและตัวดำเนินการจุด
- PHP: sprintf - เอกสารของฟังก์ชัน
sprintf()
สำหรับการจัดรูปแบบสตริง