פרק 7. משתנים

תוכן העניינים:
הסבר בסיסי
משתנים מוגדרים מראש
טווח ההגדרה של משתנים
שמות משתנים שמשתנים
×ž×©×ª× ×™× ×ž×—×•×¥ ל-PHP

הסבר בסיסי

משתנים ב-PHP מיוצגים על-ידי שם עם סימן הדולר בתחילתו . קיימת הבחנה בין אותיות תחיליות לאותיות רגילות בשמות המשתנים ( case-sensitive ) .

חוקי כל התויות ב-PHP תקפים גם לגבי שמות משתנים . שם משתנה תקין יתחיל עם אות או תו הקו-התחתון ואחריו יתכן רצף של אותיות מספרים או קו-תחתון . ניתן לתאר את חוקיות שם המשתנה בעזרת ביטוי רגולרי כזה : ' [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* '

הערה : הכוונה פה היא לתוים a-z,A-Z ותוי ה-ASCII מתו מספר 127 עד תו 255 ( 0x7f-0xff ) .

 
$var

 
=

 
"

 
Bob"

 
;

 
$Var

 
=

 
"Joe"

 
;

 
echo

 
"$var

 
,

 
$Var"

 
;

 
/

 
/

 
outputs

 
"Bob

 
,

 
Joe

 
"

 
$4site

 
=

 
'not

 
yet'

 
;

 
/

 
/

 
invalid

 
;

 
starts

 
with

 
a

 
number

 
$_4site

 
=

 
'not

 
yet'

 
;

 
/

 
/

 
valid

 
;

 
starts

 
with

 
an

 
underscore

 
$tהyte

 
=

 
'mansikka'

 
;

 
/

 
/

 
valid

 
;

 


 
'

 
is

 
ASCII

 
228

 
.





ב-PHP 3 תמיד מציבים ערכים למשתנה . כלומר , כאשר נציב ביטוי למשתנה , מועתק ערכו של כל הביטוי לתוך המשתנה . כאשר נציב את ערכו של משתנה מסויים למשתנה אחר , שינוי ערכו של אחד המשתנים לא ישפיע על המשתנה השני . למידע נוסף בנושא יש לעיין בפרק ה ביטויים .

החל מגרסה 4 של PHP ניתן להשתמש בדרך נוספת להצבת משתנים : הצבה בעזרת מכוון( reference ) . כלומר ניתן ליצור משתנה חדש שמצביע (במילים אחרות "מכוון ל " או "נהפך לכינוי של " משתנה ) למשתנה המקורי . שינוי בערכו של המשתנה החדש יתבצע גם על המשתנה המקורי ולהפך . לא מתבצעת כאן העתקה ולכן ההצבה תתבצעה בצורה מהירה יותר אך לא ניתן להבחין בהפרש זמנים אלא אם מדובר בלולאות ארוכות או הצבה של מערכים ואובייקטים גדולים במיוחד .

כדי לבצע הצבה בעזרת מכוון יש להוסיף אמפרסנד ( ) בתחילת שם המשתנה שמכוונים אליו (משתנה המקור) . לדוגמה , הסקריפט הבא ידפיס פעמיים את המחרוזת 'My name is Bob ' :

 
?php

 
$foo

 
=

 
'

 
Bob'

 
;

 
/

 
/

 
Assign

 
the

 
value

 
'Bob

 
'

 
to

 
$foo

 
$bar

 
=

 
$foo

 
;

 
/

 
/

 
Reference

 
$foo

 
via

 
$bar

 
.

 
$bar

 
=

 
"My

 
name

 
is

 
$bar"

 
;

 
/

 
/

 
Alter

 
$bar..

 
.

 
echo

 
$foo

 
;

 
/

 
/

 
$foo

 
is

 
altered

 
too

 
.

 
echo

 
$bar

 
;

 
?





חשוב לציין כי רק משתנה בעל שם יכול לקבל הצבה בעזרת מכוון .

 
?php

 
$foo

 
=

 
25

 
;

 
$bar

 
=

 
$foo

 
;

 
/

 
/

 
פקודה

 
תקינה

 
$bar

 
=

 
(24

 
*

 
7)

 
;

 
/

 
/

 
פקודה

 
לא

 
תקינה

 
,

 
הכוונה

 
לביטוי

 
ללא

 
שם

 
function

 
test(

 
)

 
{

 
return

 
25

 
;

 
}

 
$bar

 
=

 
test()

 
;

 
/

 
/

 
לא

 
תקין

 
?