PHP รวมไฟล์
คำ สั่ง include
(หรือrequire
) นำข้อความ/โค้ด/มาร์กอัปทั้งหมดที่มีอยู่ในไฟล์ที่ระบุและคัดลอกลงในไฟล์ที่ใช้คำสั่ง include
การรวมไฟล์มีประโยชน์มากเมื่อคุณต้องการรวม PHP, HTML หรือข้อความเดียวกันไว้ในหลายหน้าของเว็บไซต์
PHP รวมและต้องใช้คำสั่ง
เป็นไปได้ที่จะแทรกเนื้อหาของไฟล์ PHP หนึ่งไฟล์ลงในไฟล์ PHP อื่น (ก่อนที่เซิร์ฟเวอร์จะดำเนินการ) ด้วยคำสั่ง include หรือ require
คำสั่ง include และ require เหมือนกัน ยกเว้นในกรณีที่ล้มเหลว:
require
จะสร้างข้อผิดพลาดร้ายแรง (E_COMPILE_ERROR) และหยุดสคริปต์include
จะสร้างคำเตือนเท่านั้น (E_WARNING) และสคริปต์จะดำเนินต่อไป
ดังนั้น ถ้าคุณต้องการให้การดำเนินการดำเนินต่อไปและแสดงผลลัพธ์แก่ผู้ใช้ แม้ว่าไฟล์ include จะหายไป ให้ใช้คำสั่ง include มิฉะนั้น ในกรณีของ FrameWork, CMS หรือการเข้ารหัสแอปพลิเคชัน PHP ที่ซับซ้อน ให้ใช้คำสั่ง require เพื่อรวมไฟล์คีย์เข้ากับโฟลว์ของการดำเนินการเสมอ วิธีนี้จะช่วยหลีกเลี่ยงความปลอดภัยและความสมบูรณ์ของแอปพลิเคชันของคุณ เผื่อในกรณีที่ไฟล์คีย์หนึ่งไฟล์หายไปโดยไม่ได้ตั้งใจ
รวมถึงไฟล์บันทึกการทำงานจำนวนมาก ซึ่งหมายความว่าคุณสามารถสร้างไฟล์ส่วนหัว ส่วนท้าย หรือเมนูมาตรฐานสำหรับหน้าเว็บทั้งหมดของคุณ จากนั้น เมื่อจำเป็นต้องอัปเดตส่วนหัว คุณสามารถอัปเดตได้เฉพาะไฟล์รวมส่วนหัวเท่านั้น
ไวยากรณ์
include 'filename';
or
require 'filename';
PHP รวมตัวอย่าง
ตัวอย่าง 1
สมมติว่าเรามีไฟล์ส่วนท้ายมาตรฐานที่เรียกว่า "footer.php" ซึ่งมีลักษณะดังนี้:
<?php
echo "<p>Copyright © 1999-" . date("Y") . " W3Schools.com</p>";
?>
หากต้องการรวมไฟล์ส่วนท้ายในหน้า ให้ใช้include
คำสั่ง:
ตัวอย่าง
<html>
<body>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>
</body>
</html>
ตัวอย่าง 2
สมมติว่าเรามีไฟล์เมนูมาตรฐานชื่อ "menu.php":
<?php
echo '<a href="/default.asp">Home</a> -
<a href="/html/default.asp">HTML Tutorial</a> -
<a href="/css/default.asp">CSS Tutorial</a> -
<a href="/js/default.asp">JavaScript Tutorial</a> -
<a href="default.asp">PHP Tutorial</a>';
?>
ทุกหน้าในเว็บไซต์ควรใช้ไฟล์เมนูนี้ นี่คือวิธีที่สามารถทำได้ (เรากำลังใช้องค์ประกอบ <div> เพื่อให้เมนูสามารถกำหนดสไตล์ด้วย CSS ในภายหลังได้อย่างง่ายดาย):
ตัวอย่าง
<html>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
</body>
</html>
ตัวอย่างที่ 3
สมมติว่าเรามีไฟล์ชื่อ "vars.php" โดยมีการกำหนดตัวแปรบางตัว:
<?php
$color='red';
$car='BMW';
?>
จากนั้น หากเรารวมไฟล์ "vars.php" ไว้ คุณสามารถใช้ตัวแปรในไฟล์การเรียกได้:
ตัวอย่าง
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'vars.php';
echo "I have a $color $car.";
?>
</body>
</html>
PHP รวมเทียบกับ require
คำrequire
สั่งนี้ยังใช้เพื่อรวมไฟล์ลงในโค้ด PHP
อย่างไรก็ตาม มีความแตกต่างใหญ่อย่างหนึ่งระหว่าง include และ require; เมื่อไฟล์ถูกรวมเข้ากับinclude
คำสั่งและไม่พบ PHP สคริปต์จะทำงานต่อไป:
ตัวอย่าง
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
หากเราทำตัวอย่างเดียวกันโดยใช้require
คำสั่ง คำสั่ง echo จะไม่ถูกดำเนินการเพราะการเรียกใช้สคริปต์ตายหลังจาก
require
คำสั่งส่งคืนข้อผิดพลาดร้ายแรง:
ตัวอย่าง
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
ใช้require
เมื่อแอปพลิเคชันต้องการไฟล์
ใช้include
เมื่อไม่ต้องการไฟล์และควรใช้งานต่อเมื่อไม่พบไฟล์