ป้ายกำกับ: แสดงผล

PHP: echo tipsPHP: echo tips

การใช้ echo ใน PHP ดูเหมือนจะเป็นเรื่องพื้นฐานที่สุด แต่จริง ๆ แล้วมีเทคนิคเล็ก ๆ น้อย ๆ ที่ช่วยให้ Code ของคุณสะอาดขึ้น และในบางกรณีอาจช่วยเรื่อง Performance ได้ด้วยครับ

นี่คือสรุป Tips การใช้งาน echo แบบมือโปรครับ


ใช้ Comma ( , ) แทนการเชื่อมสตริงด้วย Dot ( . )

หลายคนชินกับการใช้จุด . เพื่อเชื่อมข้อความ ( Concatenation ) แต่รู้หรือไม่ว่า echo สามารถรับพารามิเตอร์ได้หลายตัวโดยใช้เครื่องหมายคอมม่า ,

  • แบบเดิม ( Dot ): PHP จะต้องเอาสตริงมาต่อกันให้เสร็จใน Memory ก่อนแล้วค่อยแสดงผล
  • แบบใหม่ ( Comma ): PHP จะทยอยพ่นค่าออกไปทีละตัวโดยไม่ต้องสร้างสตริงชุดใหม่ใน Memory
// แบบใช้จุด (สร้างสตริงใหม่ใน Memory ก่อนแสดงผล)
echo "สวัสดีคุณ " . $name . " ยินดีต้อนรับสู่ " . $website;

// แบบใช้คอมม่า (มีประสิทธิภาพมากกว่าเล็กน้อย)
echo "สวัสดีคุณ ", $name, " ยินดีต้อนรับสู่ ", $website;

ลดการเรียกใช้ echo ซ้ำซ้อน

แทนที่จะเขียน echo แยกบรรทัดกันหลายๆ รอบ ซึ่งทำให้ Code ดูรก คุณสามารถรวมมันเป็นคำสั่งเดียวได้เลยตัวอย่างที่ไม่แนะนำ

echo "<h1>หัวข้อ</h1>";
echo "<p>เนื้อหาบทความ...</p>";
echo "<small>ผู้เขียน: Admin</small>";

ตัวอย่างที่แนะนำ

echo "<h1>หัวข้อ</h1>",
     "<p>เนื้อหาบทความ...</p>",
     "<small>ผู้เขียน: Admin</small>";

Double Quotes vs Single Quotes

การเลือกใช้เครื่องหมายคำพูดมีผลกับความเร็วและการเขียน Variable ครับ

  • Single Quotes ( ‘ ‘ ): PHP จะมองว่าเป็นข้อความดิบๆ ไม่มีการตรวจสอบตัวแปรข้างใน ( เร็วกว่านิดหน่อย )
  • Double Quotes ( ” ” ): PHP จะทำการ Parse หรือตรวจสอบว่ามีตัวแปรอยู่ข้างในหรือไม่ ถ้ามีจะแทนค่าให้ทันที
$color = "แดง";

// แบบนี้ PHP ต้องเสียเวลาสแกนหาตัวแปร
echo "รถคันนี้สี $color"; 

// แบบนี้ PHP พ่นออกไปได้เลย (ถ้าไม่มีตัวแปร แนะนำแบบนี้)
echo 'รถคันนี้สีแดง';

ใช้ Heredoc สำหรับ HTML ยาว ๆ

ถ้าคุณต้อง echo โค้ด HTML หรือข้อความที่มีจำนวนบรรทัดเยอะๆ การใช้ echo "..." หรือ echo '...' อาจจะทำให้จัดการเครื่องหมายคำพูด ( Quote ) ลำบาก การใช้ Heredoc จะช่วยได้มากครับ

$title = "PHP Tips";
$content = "การใช้ echo อย่างถูกวิธี";

echo <<<HTML
<div class="card">
    <h2>{$title}</h2>
    <p>{$content}</p>
</div>
HTML;

( หมายเหตุ: ตัวปิด HTML; ต้องอยู่ชิดหน้าสุดและไม่มีช่องว่างข้างหน้าใน PHP เวอร์ชั่นเก่า )


สรุป

การเลือกใช้เทคนิคเหล่านี้อาจไม่ได้เห็นผลเรื่องความเร็วแบบถล่มทลายในโปรเจกต์ขนาดเล็ก แต่จะช่วยให้ Code Quality ดีขึ้น อ่านง่ายขึ้น และลดภาระของ Memory ในโปรเจกต์ที่มีการประมวลผลข้อความจำนวนมากครับ


อ่านเพิ่มเติม