הפקודות include() ו-require() (ניתן לרשום אותן גם בלי סוגריים) הן לא ממש מבני בקרה. הן מייבאות קובץ לדף ה-PHP. הן למעשה מעתיקות תוכן של קובץ מסויים לתוך הקוד של PHP בדיוק במקום שבו מופיעה הפקודה, ומריצים את הקוד שלו. ההבדל ביניהם הוא ש-include() ממשיך בתוכנית גם אם הקובץ לא נמצא (מדפיס הודעת אזהרה, warning, במקרה כזה), ואילו require() מדפיס הודעת שגיאה ועוצר את התוכנית (fatal error).
<?php $file_name='file1.inc'; @include$file_name;
/*
לא תדפיס הודעת אזהרה, כי משתמשים ב-@. והתוכנית תמשיך...
*/
include('file2.inc');
/*
תדפיס הודעת אזהרה. והתכנית תמשיך...
*/
require "../$file_name";
/*
תדפיס הודעת שגיאה. והתוכנית תיעצר!
*/
echo "if you got to here, then the previous require command found the file and didn't quit the program."; ?>
הפונקציות include_once() ו-require_once() מונעות ייבוא כפול של אותו קובץ.
תגובות בנושא
הממ...
05-12-06 03:01 לירן אלישע
#2676
מדוע ישנן פונקציות מיוחדות למניעת ייבוא של קובץ פעמיים? זה לא אמור להיות ברירת מחדל? בדיקת תקינות קלט? משו?