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