การแทรกค่าลงในสตริง

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() สำหรับการจัดรูปแบบสตริง