วันนี้ไปเจอบทความหนึ่งซึ่งน่าสนใจ เขียนโดย Eric Higgins เว็บมาสเตอร์ของกูเกิล เขาแนะนำเทคนิคง่ายๆ สำหรับเพิ่มประสิทธิภาพของโค้ด PHP เรามาดูกันครับว่าเขาแนะนำอะไรไว้บ้าง
- อย่าไปก้อปปี้ตัวแปรแบบไม่มีเหตุผล การทำอย่างนี้จะทำให้โค้ดของเรากินหน่วยความจำเป็น 2 เท่า
แย่ :$description = $_POST['description']; echo $description;
เยี่ยม :
echo $_POST['description'];
- ใช้เครื่องหมาย ‘ สำหรับข้อความ สำหรับ PHP นั้น อนุญาตให้ใช้ได้ทั้งเครื่องหมาย ” และ ‘ 2 ตัวนี้มีความต่างกันอยู่ตรงที่ ทุกสิ่งที่อยู่ใน ‘…’ คือข้อความเท่านั้น ส่วน “…” สามารถแทรกตัวแปรเข้าไปได้ ตรงนี้แหละที่ทำให้ประสิทธิภาพลดลง เพราะทุกครั้งที่ใช้ “…” PHP จะต้องคอยหาดูว่าภายในมีตัวแปรอยู่หรือเปล่า ส่วน ‘…’ มันไม่สนใจ อะไรที่อยู่ข้างในถือว่าเป็นสตริงหมด
แย่ :$output = "This is a plain string";
เยี่ยม :
$output = 'This is a plain string';
แย่ :
$type = "mixed"; $output = "This is a $type string";
เยี่ยม :
$type = 'mixed'; $output = 'This is a ' . $type .' string';
- ใช้ echo แทน print เพราะมันอ่านง่ายกว่า
แย่ :print($myVariable);
เยี่ยม :
echo $myVariable;
- อย่าใช้การต่อข้อความ ตอน echo อันที่จริงแล้วคำสั่ง echo นั่นเราสามารถ echo ค่าแบบต่อเนื่องได้โดยการ ใช้คอมม่า (,) คั่นแต่ละค่า มันก็จะ echo ค่าออกมาตามลำดับ ถ้าเราใช้วิธีต่อข้อความก่อน echo มันก็ต้องเสียเวลาต่อข้อความก่อนอีก
แย่ :echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;
เยี่ยม :
echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
- ใช้ switch/case แทน if/else เยี่ยมกว่า อ่านง่ายกว่า และแก้ไขในภายหลังง่ายกว่า
แย่ :if($_POST['action'] == 'add') { addUser(); } elseif ($_POST['action'] == 'delete') { deleteUser(); } elseif ($_POST['action'] == 'edit') { editUser(); } else { defaultAction(); }
เยี่ยม :
switch($_POST['action']) { case 'add': addUser(); break; case 'delete': deleteUser(); break; case 'edit': editUser(); break; default: defaultAction(); break; }