פקודת include() מספחת ומריצה או מעריכה קובץ מסויים.
הפקודות require() ו-include() זהות בכל מובן חוץ מאשר האופן בו הן מטפלות בשגיאות או בחוסר הצלחה בסיפוח הקובץ. פקודת include() מייצרת אזהרה בעוד שפקודת require() מייצרת Fatal Error - שגיאה שתגרום לעצירת הריצה של הסקריפט. אם ברצונך למנוע את ריצת הסקריפט במקרה שקובץ לא נמצא, יש להשתמש ב-require(). פקודת include() אינה מתנהגת באופן כזה.כמו כן, מומלץ לקבוע את ערכו של include_path.
כאשר קובץ מסופח בעזרת include הוא יורש את מערך המשתנים ברגע הסיפוח. כלומר, כל משתנה שהיה זמין בסקריפט הראשי בנקודת הסיפוח, יהי זמין בתחילת קוד ה-include גם כן.
דוגמה 11-3. דוגמה בסיסית ל-include()
|
אם הסיפוח מתבצע מתוך פונקציה בסקריפט הראשי, כל הקוד המוכל יתנהג כאילו הוא חלק מהפונקציה עצמה כך שהוא יירש את מערך המשתנים של הפונקציה בלבד.
כאשר קובץ מסופח, המפרש יוצא מ"מצב "PHP ועובר ל"מצב "HTML בתחילת הקובץ. כפועל יוצא, כל קוד מסופח צריך להיות בתגיות פתיחה וסגירה תקניות.
אם מאופשרת אופציית " URL fopen wrappers" (שהיא ברירת מחדל בהגדרות), יש באפשרותינו לציין קישור HTTP במקום שם קובץ מקומי. אם שרת המטרה מפרש קבצי PHP, תיתכן העברת משתנים לקישור בשיטת HTTP GET. זה שונה במקצת מסיפוח של קובץ מקומי היורש את המשתנים מהסקריפט הראשי. הסקריפט המרוחק בעצם מורץ ותוצאתו מסופחת לסקריפט המקומי.
דוגמה 11-5. שימוש ב-include() דרך HTTP
|
מאחר והפקודות include() ו-require() הן מבנה מיוחד בשפה, חובה לעטוף אותן בסוגריים מסולסלים כאשר רוצים להתנות את ביצוען.
ניתן להפעיל פקודת return מתוך קובץ מסופח במטרה לקטוע את הסיפוח ולהחזיר את השליטה לסקריפט הקורא. כמו כן, ניתן להחזיר מידע מקובץ מסופח ולהשתמש במידע בדומה לשימוש בפונקציה רגילה.
הערה: בגרסה 3 של PHP לא תיתכן קריאה ל-return() אלא מתוך פונקציה בלבד ולא מתיוך קובץ ראשי או קובץ מסופח.
המשתנה $bar יקבל את הערך 1 כי הסיפוח התבצע בהצלחה. שימו לב להבדל בין הדוגמאות הקודמות. הראשונה משתמשת בפקודת return() מקובץ מסופח והשנייה - לא. דרכים נוספות לסיפוח קובץ לתוך משתנים ניתן לממש תוך שימוש ב- fopen(), file() או תוך שימוש ב-include() בשילוב עם פונקציות לשליטה בפלט.
עיין גם בפרקים על require(), require_once(), include_once(), readfile(), virtual() ו- include_path.