ภาพไม่เกี่ยวกับบทความ

วันนี้ไปเจอบทความหนึ่งซึ่งน่าสนใจ เขียนโดย Eric Higgins เว็บมาสเตอร์ของกูเกิล เขาแนะนำเทคนิคง่ายๆ สำหรับเพิ่มประสิทธิภาพของโค้ด PHP เรามาดูกันครับว่าเขาแนะนำอะไรไว้บ้าง

  1. อย่าไปก้อปปี้ตัวแปรแบบไม่มีเหตุผล การทำอย่างนี้จะทำให้โค้ดของเรากินหน่วยความจำเป็น 2 เท่า
    แย่ :

    $description = $_POST['description'];
    echo $description;

    เยี่ยม :

    echo $_POST['description'];
  2. ใช้เครื่องหมาย ‘ สำหรับข้อความ  สำหรับ 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';
  3. ใช้ echo แทน print  เพราะมันอ่านง่ายกว่า
    แย่ :

    print($myVariable);

    เยี่ยม :

    echo $myVariable;
  4. อย่าใช้การต่อข้อความ ตอน 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;
  5. ใช้ 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;
    }

http://code.google.com/speed/articles/optimizing-php.html