php לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס)
-
בקוד הזה יש שגיאה כיון שבשורה 6 הוא ניגש ל$as שנמצא מחוץ לפונקציה.
איך אני יכול להריץ את הפונקציה עם ערכים מבחוץ ? -
@chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):
בקישור הזה לא עשית שימוש בגלובל בתוך הפונקציה
ראה כאן:
https://onlinephp.io/c/ae84fב-stackoverflow
ראיתי פיתרון כזה:
https://onlinephp.io/c/c6d30 -
@chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):
בקישור הזה לא עשית שימוש בגלובל בתוך הפונקציה
ראה כאן:
https://onlinephp.io/c/ae84fב-stackoverflow
ראיתי פיתרון כזה:
https://onlinephp.io/c/c6d30 -
@איש-נחמד תודה
במקרה הזה - לא הצלחתי - https://onlinephp.io/c/a0bde
נ.ב. מוזר לי הרעיון שמצהירים על גלובל בעת הקריאה לשיטה ולא בעת יצירת השיטה. כמו כאן. אבל מי אני שיתווכח.
הפתרון מהסטאק עבד.
תודההפתרון הנכון הוא שימוש בuse:
function($v, $k) use($as) {הנה דוגמא: https://onlinephp.io/c/0873e
מצאתי את זה ככה
גוגל: php lambda access parent scope variable
תוצאה: https://stackoverflow.com/a/15042216/1271037
תיעוד: https://www.php.net/manual/en/functions.anonymous.php -
הפתרון הנכון הוא שימוש בuse:
function($v, $k) use($as) {הנה דוגמא: https://onlinephp.io/c/0873e
מצאתי את זה ככה
גוגל: php lambda access parent scope variable
תוצאה: https://stackoverflow.com/a/15042216/1271037
תיעוד: https://www.php.net/manual/en/functions.anonymous.php -
@איש-נחמד תודה
במקרה הזה - לא הצלחתי - https://onlinephp.io/c/a0bde
נ.ב. מוזר לי הרעיון שמצהירים על גלובל בעת הקריאה לשיטה ולא בעת יצירת השיטה. כמו כאן. אבל מי אני שיתווכח.
הפתרון מהסטאק עבד.
תודה@chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):
במקרה הזה - לא הצלחתי - https://onlinephp.io/c/a0bde
מכיוון שהמשתנה
$asזמין רק בתוך הפונקציהaולא במרחב הגלובלי, לפונקציהaaaאין לכאורה גישה למרחב של הפונקציהa -
בקוד הזה יש שגיאה כיון שבשורה 6 הוא ניגש ל$as שנמצא מחוץ לפונקציה.
איך אני יכול להריץ את הפונקציה עם ערכים מבחוץ ?@chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):
איך אני יכול להריץ את הפונקציה עם ערכים מבחוץ ?
יש עוד דרך לגשת למשתנה מחוץ לסקופ (אבל... יותר מזעזע מההכרזה global , לפחות לדעתי...)
והיא על ידי המשתנהGLOBALS$שהיא
" מערך אסוציאטיבי המכיל הפניות לכל המשתנים המוגדרים כעת בהיקף הגלובלי של הסקריפט. שמות המשתנים הם המפתחות של המערך."ככה
<?php $as = 'c'; $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]; $outputB = array_filter($arr, function ($v, $k) { return $k == $GLOBALS['as'] || $v == 4; }, ARRAY_FILTER_USE_BOTH); print_r($outputB);
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות