ביטויים
הם
אחד
מאבני
הייסוד
הכי
חשובים
ב
PHP
.
ב
PHP
,
כמעט
כל
דבר
שכותבים
הוא
ביטוי
.
הדרך
הפשוטה
והמדוייקת
ביותר
להגדיר
את
המונח
"
ביטוי
"
היא
"כל
דבר
שיש
לו
ערך
"
.
הצורה
הבסיסית
ביותר
של
"
ביטוים
"
הם
קבועים
ומשתנים
.
כאשר
מקלידים
"$a
=
5"
,
למעשה
מציבים
את
הערך
'5
'
לתוך
$a
.
למספר
'5'
,
יש
כמובן
את
הערך
5
,
או
במילים
אחרות
'5
'
הוא
ביטוי
עם
הערך
5
(במקרה
שלנו
,
'5
'
הוא
קבוע
מסוג
מס
'
שלם
)
.
אחרי
ההצבה
הנ"
ל
,
כצפוי
הערך
של
$a's
הוא
5
.
כמו
כן
,
אם
ייתכב
בתוכנית
$b
=
$a
,
התוצאה
תהיה
כאילו
נכתב
$b
=
5
.
במילים
אחרות
,
$a
הוא
"ביטוי
"
עם
הערך
5
גם
כן
.
דוגמאא
מעט
יותר
מורכבת
"
לביטויים
"
הם
פונקציות
.
למשל
,
הבא
נבחן
את
הדוגמא
הבאה
:
בהנחה
שיש
לך
היכרות
עם
הנושא
של
פונקציות
(
אם
התשובה
שלילית
תן
הצצה
בפרק
הדן
ב"פונקציות")
,
אתה
בטח
מניח
שהביטוי
$c
=
foo(
)
הוא
ביסודו
ממש
כמו
כתיבת
$c
=
5
,
וכמבן
שאתה
צודק
.
פונקציות
הן
ביטויים
עם
הערך
שהן
עצמן
מחזירות
.
מאחר
ו
foo(
)
מחזיר
את
הערך
5
,
אפשר
לאמר
שהערך
של
הפונקציה
'foo()
'
הוא
5
.
לרוב
,
פוקנקציות
לא
רק
מחזירות
ערך
סטטי
,
אלא
גם
מבצעות
חישוב
כלשהו
.
כמבון
,
ערכים
ב
PHP
לא
חייבים
להיות
integers
(
מספרים
שלמים
)
,
ולעיתים
קרובות
הם
לא
.
PHP
תומכת
בשלושה
ערכים
סקאלריים
(
הסבר
בהמשך)
:
מספרים
שלמים
,
ערכי
נקודה
צפה
(מספרים
לא
שלמים
)
וערכי
מחרוזת
(ערכים
סקלריים-scalar
-
הם
ערכים
שלא
ניתן
ל"שבור
"
לחקלים
קטנים
יותר
,
להבדיל
למשל
ממערכים
)
.
PHP
תומכת
כמובן
בשני
סוגי
ערכים
מורכבים(
non-scalar
)
:
מערכים
ואובייקטים
.
כל
אחד
מסוג
ערכים
זה
יכול
להיות
מוקצה
לתוך
משתנה
או
או
להיות
מוחזר
מתוך
פונקציות
.
לפי
שעה
,
משתמשים
של
PHP
/
FI
2
לא
צריכים
להרגיש
כל
שינוי
.
בכל
מקרה
,
PHP
לקחו
את
"
הביטויים
"
רחוק
יותר
,
ממש
כפי
שעשו
שפות
רבות
אחרות
.
PHP
היא
שפה
מונחית
ביטויים
,
מהבחינה
שכמעט
כל
דבר
בשפה
מבוסס
על
ביטויים
.
אפשר
לחשוב
על
על
הדוגמא
שכבר
עסקנו
בא
,
'
$a
=
5'
.
קל
מאוד
לראות
שמעורבים
בה
2
ערכים
,
הערך
של
הקבוע
השלם
'5'
,
והערך
של
$a
שלמעשה
עודכן
להיות
גם
הוא
5
.
למען
האמת
יש
במקרה
הנדון
עוד
ערך
נוסף
שמעורב
,
וההערך
הוא
ההצבה
עצמה
.
ההצבה
עצמה
יוצרת
ערך
גם
לערך
המוקצה
,
במקרה
הזה
5
.
למעשה
,
זה
אומר
ש
'$a
=
5'
,
מבלי
להתייחס
למה
שהוא
עושה
,
הוא
ביטוי
עם
הערך
5
.
לכן
,
כתיבה
של
'$b
=
($a
=
5)
'
היא
כמו
כתיבה
של
'$a
=
5
;
$b
=
5
;
'
(הסימן
סמיקולו
'
;
'
מסמן
סיום
של
משפט
הוראה)
.
מאחר
וניתוח
המשפט
נעשה
מימין
לשמאל
,
אפשר
למעשה
גם
לכתוב
:
'$b
=
$a
=
5
'
.
דוגמא
טובה
נוספת
להסבר
צורת
קריאת
הביטויים
:
משתמשי
PHP
/
FI
2
ושפות
אחרות
עשויים
להכיר
את
קיומם
של
האופרטורים
משנתה+
+
ו
משתנה--
.
אלו
הם
האופרטורים
לקידום
ולהחסרה
.
ב
PHP
/
FI
2
,
המשפט
'
$a++
'
הוא
חסר
ערך
(הוא
אינו
ביטוי
)
,
ולכן
אין
בו
כל
שימוש
.
PHP
מגיברה
את
היכולות
של
אופרטורי
ההגדלה
/
חיסור
על
ידי
הפיכתם
לביטויים
,
ממש
כמו
ב
C
.
ב
PHP
,
כמו
ב
C
,
ישנם
שני
סוגים
של
אופרטורי
הגדלה
pre-increment
ו
post-increment
.
שני
אלה
בייסודם
מגדילים
את
ערכי
המשתנה
,
והאפקט
על
המשתנה
הוא
זהה
.
ההבדל
הוא
בערך
שך
המשתנה
המוגדל
.
Pre-increment
,
שנכתב
כ
'
++$variable'
,
מגדיל
את
הערך
המוגדל
(PHP
מגדילה
את
הערך
לפני
שהיא
קוראת
את
הערך
לכן
המונח
'pre-increment
'
או
בתרגום
צולע
משהו
:
"מוגדל
מראש"
)
.
Post-increment
,
שנכתב
כ
'
$variable++
'
מציב
את
הערך
המקורי
של
$variable
,
לפני
שהוא
מגדיל
אותו
(PHP
מגדילה
את
הערך
של
המשתנה
אחרי
שקראה
את
ערכו
,
לפיכך
השם
'post-increment'
)
.
סוג
מפוף
של
ביטויים
הוא
ביטוי
השוואה
.
ביטויים
אלו
מוערכים
כ
0
או
1
,
כלומר
כ
FALSE
או
כ
TRUE
סוג
מפוף
של
ביטויים
הוא
ביטוי
השוואה
.
ביטויים
אלו
מוערכים
כ
0
או
1
,
כלומר
כ
FALSE
או
כ
TRUE
(
בהתאמה
)
.
PHP
תומכת
ב
(
גדול
מ)
,
=
(גדול
או
שווה
ל)
,
==
(שווה)
,
!=
(לא
שווה)
,
(קטן
מ
)
and
=
(קטן
או
שווה
ל
)
.
השימוש
בביטויים
אלו
נפוך
בעיקר
בביצוע
משפטי
תנאי
,
מהסוג
של
if
לדוגמא
.
הסוג
החארון
של
ביטויים
שקיים
הוא
שילוב
של
operator-assignment
expressions
.
If the value of the first subexpression is
TRUE
(non-zero), then the second subexpression is evaluated, and that
is the result of the conditional expression. Otherwise, the third
subexpression is evaluated, and that is the value.