การใช้ 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 ในโปรเจกต์ที่มีการประมวลผลข้อความจำนวนมากครับ
อ่านเพิ่มเติม