-
@ass אמר בשגיאת Login.php כבר בשימוש:
@שמואל4
נניח הקובץ PHP שבו הפונקציה נמצאת הוא A אם אני יקרא ל בקובץ B היא תעבוד?כן, במידה שיהיה include לקובץ A.
אבל עושים אותו בראש הקובץ B פעם אחת וזהו ולא בכל מקום שאתה רוצה לקרוא לה. אחרי שיש include לקובץ אתה פשוט קורא לפונקציה ולא שוב include -
@ass אמר בשגיאת Login.php כבר בשימוש:
@שמואל4
זה בדיוק הבעיה שלי!
כי אם נגיד שהפונקציה נמצאת בקובץ A ועכשיו גם קובץ B וגם C יבצעו include ואז קריאה, אם אני מריץ את B ו C ביחד אני יקבל את השגיאה ש A כבר בשימוש של B, וC לא יכול להשתשמש...א. אתה יכול להשתמש במקרה הזה עם מה שנכתב לעיל - אבל זה לא תקין.
ב. למה שיקרא דבר כזה? תן לי סיטואציה שבה יקרה דבר כזה.אם קובץ A הוא קובץ שמכיל פונקציות גלובליות בכל תהליך אתה עושה לו פעם אחת include. למה הפרוייקט כתוב בצורה שזה לא ככה? איך יקרה דבר כזה?
-
@שמואל4
בגלל שאם קובץ B אחראי להעלות תקייה מסויימת של קבצים לימות ביום א'.
וקובץ D אחראי להעלות ביום ב'.
אז אני מתזמן אותם כל קובץ לפי היום שלו.
אבל אם נגיד הייתה בשרת תקלה של חיבור לאינטרנט וכו' אז בסופ"ש אני מריץ קובץ שבעצם מריץ גם את B וגם את C. -
@ass אמר בשגיאת Login.php כבר בשימוש:
אז אני מתזמן אותם כל קובץ לפי היום שלו.
אוקי, אז בכל קובץ יהיה include אחד בודד לקובץ של הפונקציות.
@ass אמר בשגיאת Login.php כבר בשימוש:
אבל אם נגיד הייתה בשרת תקלה של חיבור לאינטרנט וכו' אז בסופ"ש אני מריץ קובץ שבעצם מריץ גם את B וגם את C.
אז מה יקרה?
אני מקווה שאתה מבין השגיאה בביצוע include שני היא שגיאה ברמת התהליך php הנוכחי, כלומר אם בו זמנית רצים 2 תהליכי php נפרדים שעושים include לאותו הקובץ אין שום בעיה, אבל אתה לא יכול באותו תהליך ריצה לעשות פעמיים include לאותו הקובץ.
-
@שמואל4
קובץ A נראה כך.include 'C:\wamp64\www\my_php/Login.php'; // הגדרת שלוחה בימות $path = "ivr2:4/1"; // הגדרת שם תקייה $Program_name = "שלום"; // פתיחת קובץ ראשי include 'C:\wamp64\www\my_php/main.php';
וקובץ B נראה כך:
include 'C:\wamp64\www\my_php/Login.php'; // הגדרת שלוחה בימות $path = "ivr2:4/2"; // הגדרת שם תקייה $Program_name = "עולם"; // פתיחת קובץ ראשי include 'C:\wamp64\www\my_php/main.php';
ואז אני מריץ כל אחד בשעה שלו.
אבל אם אני רוצה להריץ את שניהם, אז יש לי קובץ אחד בשם Master שהוא מריץ את שניהם בצורה כזו:include 'C:\wamp64\www\my_php/A.php'; include 'C:\wamp64\www\my_php/B.php';
ובכל זאת מתקבלת שגיאה
-
@ass אמר בשגיאת Login.php כבר בשימוש:
אבל אם אני רוצה להריץ את שניהם, אז יש לי קובץ אחד בשם Master שהוא מריץ את שניהם בצורה כזו:
מה זה ההמצאה הזו? אתה רוצה להריץ שתי דברים באותו זמן לא מכניסים את שתיהם לאותו קובץ, זה שתי דברים נפרדים.
יכול להיות שכן אפשר לסדר זה יעבוד לך ככה, אבל זו לא הדרך האמיתית לעשות את הדברים.
הדרך הנכונה זה אם אתה רוצה להפעיל את כל הדברים יחד תפעיל 2 תהליכים של שתי הסקריפטים.
-
@yossiz אמר בשגיאת Login.php כבר בשימוש:
כי זה פשוט לא יעשה את ה include, והוא רוצה להשתמש עם include שבאמת יעשה את זה עובד פעם ויביא את כל הקוד של הקובץ פעם נוספת - שזה כמובן חיקוי עקום לשימוש עם פונקציות.
-
- הקובץ Login.php מתחבר לימות.
- הקובץ A ו B מגדירים את שם התקייה ושם הקובץ להעלאה, ואת הנתיב לשלוחה בימות (כלומר לכל קובץ (A או B) יש את הנתיב ושם התקייה שלו).
- קובץ main משתמש במשנים שהוגדרו ב A או B ומבצע העלאה לשלוחה.
- קובץ A רץ ע"י מתזמן משימות ביום א', וקובץ B ביום ב'.
- קובץ Master מריץ A ו B ביחד.