אתה נמצא כאן יסודות השפה  >>  קבועים  >>  הגדרת קבועים

הגדרת קבועים

קבוע הוא למעשה מזהה גלובלי (עם שם כמו של משתנה) שמתחלף בערך מסויים בתוך קוד התכנית. הגדרה של קבוע נעשית ע"י שימוש בפונקציית הבנייה define(), ואין צורך לשים סימן $ לפני שמו. קבוע יכול להכיל רק ערך סקלרי (כלומר: בוליאן, מספר שלם, מספר ממשי או מחרוזת) ואין אפשרות לשנות או למחוק את הקבוע לאחר הגדרתו. שמו של קבוע חייב להיות חוקי כמו שם של משתנה, וכן כמו במשתנים גם שמות של קבועים הם case-sensitive (כלומר יש הבחנה בין אותיות גדולות וקטנות).

כאשר משתמשים בקבוע בקוד התכנית, PHP ממש מחליפה את שם הקבוע בערכו.

<?php
  define("CONSTANT1","This is a constant.");
/*הגדרת קבוע בשם CONSTANT1, שערכו הוא
המחרוזת "This is a constant.".
*/

  echo CONSTANT1;
/*הקבוע CONSTANT1 מוחלף בערכו, ולכן זה שקול ל:
echo "This is a constant.";
*/

  echo "<BR>\n";
  echo Constant1;
/*קבועים הם case-sensitive, ולכן Constant1 שונה מ-CONSTANT1.
פקודה זו תדפיס לפלט: Constant1
*/

?>


תגובות בנושא

אז מה ההבדל? 08-12-02 10:01
 אסף
#372

אז מה ההבדל בין משתנה variable עם דולר לקבוע?
ומה קורה אם אני כותב בפונקציה יותר ממה שצריך למשל:
define("CONSTANT1","This is constant","This is another constant)
(שים לב שכתבתי שלושה דברים)
הוא יעשה שגיאה או שאני אוכל לעשות שהוא יבחר רנדומלי? ואם לא זה ולא זה אז מה יקרה?

קבועים לעומת משתנים 08-12-02 10:01
 אלי חן (מנהל)
#374

ההבדל נעוץ כבר בשמות שלהם.. קבועים נשארים קבועים לכל אורך התוכנית ולא ניתן לשנות את ערכם, ואילו משתנים יכולים לשנות את ערכם במהלך התוכנית.

פונקציות בנויות ב-PHP לא פועלות על-פי הרצון של המתכנת אלא על-פי האופן בו הם מוגדרים.. אם תשלח 3 ארגומנטים ל-define אז לא בהכרח תקבל שגיאה, אבל אל תצפה לקבל בדיוק את מה שאתה רוצה. תבדוק את אופן הפעולה של הפונקציה, את הפרמטרים שהיא מקבלת ואז תראה איך היא עובדת..
במקרה הזה, הארגומנט השלישי קובע case-sensitive.. אם תרצה פונקציה שבוחרת באופן רנדומלי את אחד הערכים, אז תבנה לך משלך!

יש בעיה 01-11-03 05:02
 Nizar
#1221

echo Constant1;
-----------------------
ככה כתוב בסקריפט שלך, והמשתנה אינו בין גרשיים (' אן ") אז איך php ידעה שזו מחרוזת ולא משתנה או קבוע ?!
היא הדפיסה בסקריפט : Constant1

קבוע לא מוכר 01-11-03 03:00
 אלי חן (מנהל)
#1229

כאשר רושמים משהו שנראה כמו קבוע, אז PHP מתייחסת אליו כמו קבוע ומחפשת את ערכו (היא תמצא את הקבוע באם הוגדר לפני כן ע"י define). אם לא הוא לא נמצא כקבוע (לא הוגדר לפני כן ע"י define), אז PHP מתייחסת אליו כאל מחרוזת (string)!

מישתנה גלובלי?!? 01-12-04 03:00
 יותם
#1366

אני לא מבין את כל העסק של מישתנה גלובלי מה זה ביכלל!?!
עזרה בבקשה

בישביל מה צריך את זה? 09-12-08 05:02
 עידן חכים
#2811

זה קוד כזה פשוט ולמה צריכים את זה ?

קבועים 05-12-09 17:01
 נעמי בל
#2833

מישהו יודע מה המשמעות של שורה כזו?
defined('_JEXEC') or die('Direct Access to this location is not allowed.');

תשובה לנעמי 07-12-09 16:00
 חגי און
#2853

defined בודק אם _JEXEC הוגדר ואם לא מפעיל את DIE שזורקת הודעת שגיאה ויוצאת
אני מניח ש _JEXEC הוא קבוע שמחזיק ידית למשאב של השרת הנוגע להפעלת קוד JAVA


לדף הקודםקבועים -הקודם
לתחילת הדףלתחילת הדף
הבא- קבועים מוגדרים מראשלדף הבא