บทนำ
ผลของคำสั่ง require คล้ายกับคำสั่ง include ใน PHP อย่างไรก็ตาม มีความแตกต่างหลักหนึ่ง หาก parser ไม่พบไฟล์ที่ต้องการ จะสร้าง fatal error ทำให้สคริปต์ปัจจุบันสิ้นสุดการทำงาน คำสั่ง include ในทางกลับกันจะแจ้งเตือน (warning) กรณีไม่พบไฟล์ และการดำเนินการของสคริปต์ปัจจุบันจะดำเนินต่อไป
PHP parser พยายามหาไฟล์ในโฟลเดอร์ปัจจุบันโดยค่าเริ่มต้น และต่อไปในไดเรกทอรีที่ระบุในการตั้งค่า include_path ของ php.ini เหมือนกับกรณี include statement หากไฟล์ที่ขอไม่มีในโฟลเดอร์ปัจจุบันและโฟลเดอร์ include_path PHP parser จะปล่อย E_COMPILE_ERROR และหยุดการดำเนินการของโมดูลที่เรียก
พฤติกรรมอื่นๆ ของ require statement คล้ายกับ include statement
ตัวอย่าง require
ในตัวอย่างต่อไปนี้ main php script include test.php:
ตัวอย่าง
<?php echo "inside main script\n"; $var1=100; echo "now calling test.php script\n"; require "test.php"; echo "returns from test.php"; ?> //test.php <?php $var2=200; //เข้าถึง $var1 จาก main script echo $var1+$var2 . "\n"; ?>
ผลลัพธ์
inside main script<br />now calling test.php script<br /><br />300<br />returns from test.php
ข้อผิดพลาดเมื่อ require ล้มเหลว
ในตัวอย่างต่อไปนี้ พยายาม include ไฟล์ที่ไม่มีอยู่ ทำให้เกิดข้อผิดพลาดร้ายแรง:
ตัวอย่าง
<?php echo "inside main script\n"; $var1=100; echo "now calling nosuchfile.php script\n"; require "nosuchfile.php"; echo "returns from nosuchfile.php"; ?>
ผลลัพธ์
inside main script now calling nosuchfile.php script PHP Fatal error: require(): Failed opening required 'nosuchfile.php' (include_path='C:\xampp\php\PEAR') in line 5 Fatal error: require(): Failed