פקודת
include(
)
מספחת
ומריצה
או
מעריכה
קובץ
מסויים
.
הפקודות
require(
)
ו
-
include(
)
זהות
בכל
מובן
חוץ
מאשר
האופן
בו
הן
מטפלות
בשגיאות
או
בחוסר
הצלחה
בסיפוח
הקובץ
.
פקודת
include(
)
מייצרת
אזהרה
בעוד
שפקודת
require(
)
מייצרת
Fatal
Error
-
שגיאה
שתגרום
לעצירת
הריצה
של
הסקריפט
.
אם
ברצונך
למנוע
את
ריצת
הסקריפט
במקרה
שקובץ
לא
נמצא
,
יש
להשתמש
ב
-
require(
)
.
פקודת
include(
)
אינה
מתנהגת
באופן
כזה.כמו
כן
,
מומלץ
לקבוע
את
ערכו
של
include_path
.
כאשר
קובץ
מסופח
בעזרת
include
הוא
יורש
את
מערך
המשתנים
ברגע
הסיפוח
.
כלומר
,
כל
משתנה
שהיה
זמין
בסקריפט
הראשי
בנקודת
הסיפוח
,
יהי
זמין
בתחילת
קוד
ה-include
גם
כן
.
אם
הסיפוח
מתבצע
מתוך
פונקציה
בסקריפט
הראשי
,
כל
הקוד
המוכל
יתנהג
כאילו
הוא
חלק
מהפונקציה
עצמה
כך
שהוא
יירש
את
מערך
המשתנים
של
הפונקציה
בלבד
.
דוגמה
11-4
.
סיפוח
מתוך
פונקציה
?php
function
foo(
)
{
global
$color
;
include
'vars.php'
;
echo
"A
$color
$fruit"
;
}
/
*
vars.inc
is
in
the
scope
of
foo(
)
so
*
*
$fruit
is
NOT
available
outside
of
this
*
*
scope
.
$color
is
because
we
declared
it
*
*
as
global
.
*
/
foo()
;
/
/
A
green
apple
echo
"A
$color
$fruit"
;
/
/
A
green
?
|
|
כאשר
קובץ
מסופח
,
המפרש
יוצא
מ"
מצב
"PHP
ועובר
ל"מצב
"HTML
בתחילת
הקובץ
.
כפועל
יוצא
,
כל
קוד
מסופח
צריך
להיות
ב
תגיות
פתיחה
וסגירה
תקניות
.
אם
מאופשרת
אופציית
"
URL
fopen
wrappers
"
(שהיא
ברירת
מחדל
בהגדרות
)
,
יש
באפשרותינו
לציין
קישור
HTTP
במקום
שם
קובץ
מקומי
.
אם
שרת
המטרה
מפרש
קבצי
PHP
,
תיתכן
העברת
משתנים
לקישור
בשיטת
HTTP
GET
.
זה
שונה
במקצת
מסיפוח
של
קובץ
מקומי
היורש
את
המשתנים
מהסקריפט
הראשי
.
הסקריפט
המרוחק
בעצם
מורץ
ותוצאתו
מסופחת
לסקריפט
המקומי
.
יש לעיין גם בפרקים על
קבצים מרוחקים
,
fopen()
ו-
file()
למידע נוסף בנושא.
מאחר
והפקודות
include(
)
ו
-
require(
)
הן
מבנה
מיוחד
בשפה
,
חובה
לעטוף
אותן
בסוגריים
מסולסלים
כאשר
רוצים
להתנות
את
ביצוען
.
דוגמה
11-6
.
התנייה
של
פקודת
include(
)
|
ניתן
להפעיל
פקודת
return
מתוך
קובץ
מסופח
במטרה
לקטוע
את
הסיפוח
ולהחזיר
את
השליטה
לסקריפט
הקורא
.
כמו
כן
,
ניתן
להחזיר
מידע
מקובץ
מסופח
ולהשתמש
במידע
בדומה
לשימוש
בפונקציה
רגילה
.
הערה
:
בגרסה
3
של
PHP
לא
תיתכן
קריאה
ל
-
return(
)
אלא
מתוך
פונקציה
בלבד
ולא
מתיוך
קובץ
ראשי
או
קובץ
מסופח
.
המשתנה
$bar
יקבל
את
הערך
1
כי
הסיפוח
התבצע
בהצלחה
.
שימו
לב
להבדל
בין
הדוגמאות
הקודמות
.
הראשונה
משתמשת
בפקודת
return(
)
מקובץ
מסופח
והשנייה
-
לא
.
דרכים
נוספות
לסיפוח
קובץ
לתוך
משתנים
ניתן
לממש
תוך
שימוש
ב
-
fopen(
)
,
file(
)
או
תוך
שימוש
ב
-
include(
)
בשילוב
עם
פונקציות
לשליטה
בפלט
.
עיין
גם
בפרקים
על
require(
)
,
require_once(
)
,
include_once(
)
,
readfile(
)
,
virtual(
)
ו
-
include_path
.