| หน้าแรก | ส่วนบริการลูกค้า | ข่าวประกาศ | คลังความรู้ | ติดตามความคืบหน้า | ดาวน์โหลด |
คลังความรู้
คุณอยู่ที่หน้า: หน้าแรก > คลังความรู้ > Webhosting > ความแตกต่างระหว่าง Include() Require() Require_once()
ความแตกต่างระหว่าง Include() Require() Require_once()
|
ความแตกต่างระหว่าง Include() Require() Require_once()
Include() Require() Require_once() ล้วนแล้วแต่เป็นฟังค์ชั่นที่มาพร้อมกับ PHP และก็ทำงานคล้ายๆกัน ฟังค์ชั่นทั้ง 3 นี้ เป็นการเรียกไฟล์อื่นเข้ามาร่วมกับสคริปต์ (นำไฟล์หนึ่งมาเป็นส่วนประกอบของอีกไฟล์หนึ่ง) ซึ่งผลลัพธ์โดยปกติจะออกมาเหมือนกัน ตัวอย่างรูปแบบการใช้งาน · include(“test.php”); · require(“test.php”); · require_once(“test.php”); ซึ่งจะสังเกตเห็นว่ารูปแบบของการเรียกใช้งานไม่ได้ต่างกัน แต่ความเป็นจริงมันมีความแตกต่างกัน ก่อนอื่นเรามาดูคำศัพท์กันก่อน ฟังก์ชั่นทั้ง 3 จะมีคำศัพท์หลักๆ อยู่ 3 คำ คือ include = รวมถึง, ประกอบด้วย จากความหมายจะเห็นว่าฟังก์ชัน requirec และ require_once จะให้ความสำคัญกับไฟล์ที่นำเข้ามามากกว่า ฟังก์ชั่น include
ความแตกต่าง · Include() : ฟังก์ชั่นนี้ถ้าไม่พบไฟล์ที่ต้องการ มันจะแสดง error เป็นแบบ Warning ซึ่งหมายความว่ามันจะแสดงข้อความผิดพลาดขึ้นบนหน้าจอ เฉยๆ แต่มันจะข้ามไปทำงานในส่วนอื่นต่อไป · Require() : ฟังก์ชันนี้เมื่อไม่พบไฟล์ที่ต้องการ มันจะแสดงข้อความขึ้นเป็น Fatal Error ซึ่งก็หมายความว่า เมื่อมันพบปัญหา มันก็จะขึ้น error แล้วจบการทำงานทันที คือมันก็จะถือว่าสิ้นสุดการประมวลผลไฟล์แล้ว การ require ของฟังก์ชันนี้ถ้าเรา require 5 ครั้ง ไฟล์ที่เราเรียกก็จะ require มา 5 ครั้ง · Require_once() : ตัวนี้ก็จะมีการทำงานเหมือน Require() เพียงแต่ว่ามันจะเรียกไฟล์เข้ามาในสคริปต์แค่ครั้งเดียว เช่น ถ้าเรา require 5 ครั้ง ไฟล์ที่เราเรียกก็จะถูก require มาครั้งเดียว
การเปรียบเทียบระหว่าง Require() กับ Require_once() <? #test.php echo "ถูกนำเข้าครั้งที่ $i <br>"; ?>
<? #require_once.php echo "สารสนเทศ"; for($i=1;$i<=5;$i++) require_once("test1.php"); //นำเข้าไฟล์ test.php ที่สร้างไว้ ?> ผลลัพธ์
<? #require.php echo "สารสนเทศ"; for($i=1;$i<=5;$i++) require("test.php"); //นำเข้าไฟล์ test.php ที่สร้างไว้ ?> ผลลัพธ์
การทดลองการerror ทั้ง3 ฟังก์ชัน สร้างไฟล์มาทั้งหมด 3 ไฟล์ <?php #1.php include("ag.php"); //เป็นชื่อไฟล์ที่ไม่มีอยู่จริง echo "ab"; ?>
<?php #2.php require("ab.php"); //เป็นชื่อไฟล์ที่ไม่มีอยู่จริง echo "ab"; ?>
<?php #3.php require_once("ab.php"); //เป็นชื่อไฟล์ที่ไม่มีอยู่จริง echo "ab"; ?> Error ที่ได้จากทั้งสามฟังก์ชัน Warning: include(ag.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\tawa\1.php on line 2
Warning: require(ab.php) [function.require]: failed to open stream: No such file or directory in C:\AppServ\www\tawa\2.php on line 2
Warning: require_once(ab.php) [function.require-once]: failed to open stream: No such file or directory in C:\AppServ\www\tawa\3.php on line 2
จะแสดงให้เห็นว่าการใช้ฟังก์ชัน include(); เมื่อไม่เจอไฟล์ที่ต้องการมันจะทำงานในคำสั่งต่อไปได้ แต่ที่เหลือจะไม่ทำและจบการทำงานทันที
ทั้ง 3 ฟังก์ชันควรจะใช้งานในกรณีไหน ฟังก์ชัน include() ไม่สมควรใช้กับไฟล์ที่สำคัญ จึงนิยมใช้เรียกไฟล์พวกข้อความ หรือ html ธรรมดา เพราะเมื่อไม่เจอไฟล์ที่เราเรียกโปรแกรมยังสามารถข้ามไปทำงานส่วนอื่นต่อได้อีก ยังไม่สมควรต้องหยุด กับ require() กับ require_once() สมควรใช้กับไฟล์ที่มีความสำคัญ ซึ่งนิยมใช้เรียกไฟล์ที่เก็บฟังก์ชัน, คลาส หรือค่าconfig ต่างๆ ที่มีความจำเป็นมาก เพราะถ้าข้ามการเรียกไฟล์ส่วนนี้ไปผลลัพธ์ส่วนอื่นที่ถึงแม้รันออกมาได้ก็ไร้ค่า |
Powered by WHMCompleteSolution