משתנים בשפת PHP

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

כללים למתן שמות תקינים למשתנים בשפת PHP

  1. שם משתנה (מזהה) חייב להתחיל באחת מאותיות האלף בית האנגלי a-z A-Z או בקו תחתי _.
  2. שם משתנה יכול להכיל רק את אחת מאותיות האלף בית האנגלי  a-z A-Z או בקו תחתי _. או בספרות 0-9.
  3. שמות משתנים אינם יכולים להכיל רווחים. במקרים שרוצים ליצור שם משמעותי למשתנה המכיל יותר ממילה אחת נהוג לעשות זאת באמצעות קו תחתי. למשל, שם המשתנה Code_ID הוא שם חוקי בשפת PHP.
  4. שמות משתנים בשפת PHP רגישים להבדל שבין אותיות גדולות לבין אותיות קטנות באנגלית. לפיכך, שם המשתנה Code_ID אינו זהה לשם המשתנה code_ID.

הגדרת (הכרזה על) משתנים בשפת PHP

ב - PHP אין פקודה מיוחדת שבעזרתה נגדיר משתנה לפני שניתן למשתנה זה ערך כלשהו. משתנה נוצר ב - PHP ברגע שנותנים לו ערך כלשהו. כאשר ניתן למשתנה ערך יש לשים את התו דולר $ לפני שם המשתנה. נושא זה חשוב מאוד משום שהוא מאפשר ל - parser המעבד את קוד ה - PHP "לזהות" במהירות שמדובר במשתנה.

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

דוגמה להגדרת משתנה ב - PHP

<?php
    $mystring = "Hello";
    $mycounter = 22;
?>

כאשר ניתן למשתנה ערך מסוג מחרוזת (ביטוי אלפא-נומרי) נקיף את הביטוי המרכיב את ערך המשתנה במרכאות כפולות או בגרשיים. כאשר ניתן למשתנה ערך מספרי אין לעשות זאת.

הצבת ערכים בתוך משתנים

מן הדוגמה למעלה ודאי כבר הבחנתם כי הדרך השכיחה ביותר להציב (Assign) ערך במשתנה היא באמצעות סימן השוויון '=', אולם ישנן עוד אפשרויות להצבת ערכים במשתנים. בטבלה הבאה אציג כמה מהן.

דוגמה להצבה תוצאת ההצבה
$x=1; x=1
$x=10; ++$x; x=11
$x=3; --$x; x=2
$x=5; $y=$x + 5; y=10
$x=10; $y=2; $z=$x + $y; z = 12
$s="Hello"; s= Hello
$x="Hello "; $y="World"; $z=$x+$y z=Hello World
$x=2+5; x=7
$x=(2+5)-6; x=1
$x=3; $y=3; $z=$x*$y; z=9

אורך החיים (variable scope) של משתנה בשפת PHP

בשפת PHP יש שלושה טווחי חיים שונים שבהם ניתן להגדיר משתנים:

  1. משתנה מקומי (Local Variable) - משתנה שהוגדר בתוך פונקציה והוא ממשיך להתקיים רק בתוך אותה פונקציה. משהרצת הפונקציה מסתיימת המשתנה נעלם והערך שהיה בתוכו לא נשמר. לא ניתן לגשת למשתנה זה מחוץ לפונקציה שבה הוגדר.
    <?php
    function localvar()
    {
    $x=3;
    $y=12;
    $y = $x + $y;
    }
    loacalvar();
    echo $y
    ?>

    הסקריפט שבדוגמה זו לא יפיק שום תוצאה. זאת משום שמשתנה מקומי שהוגדר בתוך פונקציה  לא שומר על ערכו עם סיום פעולתה של הפונקציה
  2. משתנה גלובאלי (global variable) - משתנה גלובאלי הוא משתנה שלא הוגדר בתוך פונקציה אלא מחוץ לכל פונקציה. ניתן לגשת להתייחס למשתנה זה בכל מקום בסקריפט שאינו בתוך פונקציה. אם רוצים לגשת למשתנה מתוך פונקציה יש להשתמש במילת המפתח global. תוצאת הקוד הבא למשל תהיה 15:
    <?php
    $x = 5;
    $y = 10;

    function vartest()
    {
    global $x, $y;
    $y = $x + $y;
    }

    varTest();
    echo $y;

    ?>
  3. משתנה מסוג static - כאמור, כאשר פונקציה מסיימת לרוץ כל המשתנים שבתוכה מפסיקים להתקיים. אם למרות זאת, אתם מעוניינים לשמר את הערכים במשתנים אלה עבור הפעם הבאה שהפונקציה תרוץ אזי יש להגדיר את המשתנים המקומיים בתוך הפונקציה כמשתנים מסוג static. חשוב ביותר להדגיש שהמשתנים  בתוך הפונקציה נותרים עדיין משתנים מקומיים ולא ניתן לגשת לערכיהם מחוץ לפונקציה אלא רק מתוך הפונקציה עצמה. נגדיר משתנה מקומי כמשתנה מסוג static באופן הבא:
    static $varCounter

 


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש