include และ require นั้นต่างก็มีหน้าที่เหมือนกันใน PHP คือการดึง file เข้ามา คล้ายกับการ import ใน JAVA แต่ข้อแตกต่างระหว่างสองอันนี้ก็คือ

ถ้าเป็น include แล้ว PHP จะพยายามค้นหา File ที่ต้องการนั้น แล้วถ้าหากไม่พบจะโยน warning message ออกมา ทำให้ระบบยังน่าจะสามารถทำงานต่อไปได้บางส่วน แต่หากถ้าเป็น require แล้วนั้น ระบบจะส่ง Fatal Error ออกมา ทำให้โปรแกรมไม่สามารถทำงานต่อได้

ส่วนในเรื่องของ include_once กับ include หรือ require กับ require_once แตกต่างกันอย่างไรนั้น สามารถอธิบายได้ง่ายๆว่า

include_once และ require_once จะมีการตรวจสอบก่อนว่าเคย include file ดังกล่าวไว้แล้วหรือไม่ ถ้ามีการ include ไว้แล้วระบบจะไม่ include ซ้ำอีก ซึ่งเหมาะสำหรับคนที่เขียน Class ใน PHP แล้วมีการ include/require class อื่นๆเข้ามาใน class นั้นๆ ถ้าหากตอนที่เรียกใช้งาน class นี้ มีการ include file class ที่เคยถูกเรียกมาแล้ว ด้วย include/require ระบบจะไม่สามารถทำงานต่อได้ ดังนั้นการใช้ once ร่วมกับการโหลด function หรือ class ต่างๆ น่าจะเป็นการดีที่สุด

ทางที่ดีที่สุดคือการใช้ autoload ใน php ที่จะทำการ include/require Class php ที่เราต้องการเรียกให้เองโดยอัตโนมัติ

<?php
function __autoload($class_name) {

echo $class_name;

require_once $class_name . ‘.php’;
}

$emp = new Employee();

 

อ้างอิง http://php.net/manual/en/language.oop5.autoload.php