הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [שאלה - PHP] מערך העזר $GLOBALS (https://hosts.co.il/forums/showthread.php?t=54517)

Kfir.G 02-10-07 21:05

[שאלה - PHP] מערך העזר $GLOBALS
 
שלום,
לא מזמן התחלתי לעבוד עם מערך העזר $GLOBALS אך נתקלתי בבעיה. השתמשתי בעמוד עם frame שבעמוד הזה שיניתי את אחד המשתנים שלי במערך העזר $GLOBALS ורציתי לגשת עליו מתוך הקובץ שנפתח בframe אבל קיבלתי את הודעה השגיאה הנ"ל:
Notice: Undefined index: rank
עכשיו ככה הגדרתי את האיבר הזה בעמוד המכיל את הframe
PHP קוד:

$GLOBALS['user']['rank'] = $rank

וכאמור כאשר ניסיתי לגשת עליו בקובץ שנפתח בframe קיבלתי שגיאה שבעצם אומרת שאותו האיבר במערך שהגדרתי אינו מוכר.
איך מתקנים בדיוק את הבעיה הזאת?
תודה מראש :)

SDF 02-10-07 22:16

1. שימוש במשתנים גלובליים בד"כ (לא תמיד) מצביע על תכנון לקוי.
2. יש לך קובץ a.php (לדוגמא)
הגדרת שם את
PHP קוד:

$GLOBALS['user']['rank'] = $rank

עכשיו יש לך קובץ b.php שנפתח בפריים. למה ציפית ש המשתנה שלך יהיה קיים שם?

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

אולי לא הבנתי אותך בכלל, אז תנסח מחדש ;)

יום קסום.

Kfir.G 02-10-07 22:30

ציטוט:

נכתב במקור על ידי SDF (פרסם 562173)
1. שימוש במשתנים גלובליים בד"כ (לא תמיד) מצביע על תכנון לקוי.
2. יש לך קובץ a.php (לדוגמא)
הגדרת שם את
PHP קוד:

$GLOBALS['user']['rank'] = $rank

עכשיו יש לך קובץ b.php שנפתח בפריים. למה ציפית ש המשתנה שלך יהיה קיים שם?

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

אולי לא הבנתי אותך בכלל, אז תנסח מחדש ;)

יום קסום.

כל הרעיון של השימוש במשתנים גלובלים הוא העברת נתונים נוחה בין עמודים לא? כמו שאם אני משתמש ב$SESSION ומשנה אותו בעמוד אחד הוא יהיה זמין בעמוד אחר ככה גם עובד המערך $GLOBALS לא? ואם לא אז האם יש אפשרות לעשות את זה?

RS324 02-10-07 22:42

כנראה שלא הבנת מה זה GLOBALS בכלל, רק על ידי שקראת לו מערך עזר..

הייתי מציע לך לנסות את הדוגמא הבאה :

PHP קוד:

<?php

$user 
= array();
$user['rank'] = 'blabla';


print 
$GLOBALS['user']['rank'];

?>

ולראות מה הפלט, אולי זה יעזור לחדד את ההבנה שלך.


כל הזמנים הם GMT +2. הזמן כעת הוא 03:43.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ