דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. php לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס)

php לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס)

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 4 כותבים 211 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי
    #1

    בקוד הזה יש שגיאה כיון שבשורה 6 הוא ניגש ל$as שנמצא מחוץ לפונקציה.
    איך אני יכול להריץ את הפונקציה עם ערכים מבחוץ ?

    איש נחמדא ל 2 תגובות תגובה אחרונה
    0
    • איש נחמדא מנותק
      איש נחמדא מנותק
      איש נחמד
      השיב לchagold ב נערך לאחרונה על ידי
      #2

      עם global

      global $as;
      

      להיות איש נחמד זה מחייב...

      chagoldC תגובה 1 תגובה אחרונה
      1
      • chagoldC מנותק
        chagoldC מנותק
        chagold
        השיב לאיש נחמד ב נערך לאחרונה על ידי
        #3

        @איש-נחמד לא עובד
        https://onlinephp.io/c/a0307

        איש נחמדא תגובה 1 תגובה אחרונה
        0
        • איש נחמדא מנותק
          איש נחמדא מנותק
          איש נחמד
          השיב לchagold ב נערך לאחרונה על ידי איש נחמד
          #4

          @chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):

          @איש-נחמד לא עובד
          https://onlinephp.io/c/a0307

          בקישור הזה לא עשית שימוש בגלובל בתוך הפונקציה
          ראה כאן:
          https://onlinephp.io/c/ae84f

          ב-stackoverflow
          ראיתי פיתרון כזה:
          https://onlinephp.io/c/c6d30

          להיות איש נחמד זה מחייב...

          chagoldC תגובה 1 תגובה אחרונה
          2
          • chagoldC מנותק
            chagoldC מנותק
            chagold
            השיב לאיש נחמד ב נערך לאחרונה על ידי
            #5

            @איש-נחמד תודה

            במקרה הזה - לא הצלחתי - https://onlinephp.io/c/a0bde

            נ.ב. מוזר לי הרעיון שמצהירים על גלובל בעת הקריאה לשיטה ולא בעת יצירת השיטה. כמו כאן. אבל מי אני שיתווכח.

            הפתרון מהסטאק עבד.
            תודה

            dovidD איש נחמדא 2 תגובות תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לchagold ב נערך לאחרונה על ידי
              #6

              הפתרון הנכון הוא שימוש ב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

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              dovidD תגובה 1 תגובה אחרונה
              2
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                השיב לdovid ב נערך לאחרונה על ידי dovid
                #7

                אופס רק כעת ראיתי ש@איש-נחמד כתב את זה.
                זה נשמע איזה "פתרון" אבל זה דרך המלך.
                global במקרה הזה זה מזעזע ברמות של תיעוב.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                2
                • איש נחמדא מנותק
                  איש נחמדא מנותק
                  איש נחמד
                  השיב לchagold ב נערך לאחרונה על ידי
                  #8

                  @chagold כתב בphp לגשת לשיטה מחוץ לפונקציה (בתוך הקלאס):

                  במקרה הזה - לא הצלחתי - https://onlinephp.io/c/a0bde

                  מכיוון שהמשתנה $as זמין רק בתוך הפונקציה a ולא במרחב הגלובלי, לפונקציה aaa אין לכאורה גישה למרחב של הפונקציה a

                  להיות איש נחמד זה מחייב...

                  תגובה 1 תגובה אחרונה
                  0
                  • ל מנותק
                    ל מנותק
                    לעזור לכולם
                    השיב לchagold ב נערך לאחרונה על ידי
                    #9

                    @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);
                    
                    
                    תגובה 1 תגובה אחרונה
                    2

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום