Forum und email

משתני משתנים

לפעמים זה נוח שיהיה לך שמות משתנים משתנים. כלומר שם משתנה אותו אפשר לאתחל ולהשתמש בו באופן דינאמי. משתנה נורמאלי מאותחל על ידי משפט שכזה:

<?php
$a 
"hello";
?>

משתנה למשתנה לוקח את ערכו של המשתנה ומתייחס אליו כאל שם של משתנה אחר. בדוגמא שלעיל, hello, יכול להיות שמיש כשם משתנה אחר על ידי שימוש בשני סימני דולר:

<?php
$$a "world";
?>

כרגע, שני משתנים הוגדרו: $a שערכו "hello" ו $hello אשר ערכו "world". לכן ההצהרה:

<?php
echo "$a ${$a}";
?>

מייצר בדיוק אותו פלט כמו:

<?php
echo "$a $hello";
?>

דהיינו שניהם מייצרים: hello world.

על מנת להשתמש במשתני משתנים יחד עם מערכים, עליך לפתור בעיית עמימות, דהיינו להבהיר לPHP למה אתה מתכוון בדיוק. כלומר, אם אתה כותב $$a[1] מנתח השפה צריך לדעת האם בכוונתך להשתמש ב$a[1] כמשתנה, או אם ברצונך ש $$a יהיה המשתנה ו [1] אינדקס עבור אותו משתנה. התחביר בו משתמשים לפתור את בעיית העמימות הוא: ${$a[1]} עבור האופציה הראשונה, ו ${$a}[1] עבור השניה.

Warning

שים לב, שאין להשתמש במשתני משתנים יחד עם מערכים סופר גלובאליים. כלומר אתה לא יכול לעשות משהו כמו ${$_GET}. אם בכל זאת אתה צריך לעשות את זה לסופר גלובאליים או למערכים הישנים בפורמט HTTP_*_VARS, אז אולי כדאי לך לנסות ב מכוונים.