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

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

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

שרשור פרמטרים של array בקוד php

מתוזמן נעוץ נעול הועבר תכנות
17 פוסטים 2 כותבים 1.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי chagold
    #5

    אולי?......🙄 🤔

    תודה.

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #6

      אני לא הבנתי את השאלה ופחדתי לומר לך את זה כי זה אולי יהיה לך מתסכל.
      הכי טוב שתראה את הקוד הקיים ומה הבעיה בו. תשתדל שהקוד יהיה קריא.

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

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

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

        @dovid אמר בשרשור פרמטרים של array בקוד php:

        תרא

        הבעיה שהקוד הוא ענק, ולא ניתן להציג את כולו במסגרת הזאת (אולי אם יש משהו תואם ל-JSFIDDLE ל-PHP?).

        בכל אופן, אנסה להציג ככה:
        אני צריך להזין שRRAY לתוך איברים ב-ARRAY. במקרה הקלאסי כותבים ככה:

           $root['Objects'] = ARRAY(.....)
        

        כשהמערך שנכנס הוא תוכן תיקיה כל שהיא.
        אבל כיון שאני צריך להזין את התיקיה למיקום ספציפי בתוך הARRAY הקיים, וזה יכול להיות גם תיקיה בדור 3 או 4, אז אני מעדכן ככה:

          $root['Objects']['foldera'] = ARRAY(.....)
        

        עכשיו, זה עוד מצויין כשאני מגדיר את הנתיב ($root['Objects']['foldera']) ידנית, אבל כיון שהתיקיות הם רבות אז אני צריך לעשות פונקציה שתביא לי את הנתיב הנכון, כמו

         $root['Objects']['foldera']
         $root['Objects']['folderb']
        

        והבעיה שכשאני עושה פונקציה, אני מקבל שגיאה בנוסח

           Notice: Undefined variable: $root['Objects']['foldera'] in /var/www/html/folders.php on line 177
        

        (זה לא יעזור לי ליצור את המשתנה ע"י (IF(ISSET כי אני צריך גישה למשנה קיים במערך, השאלה איך ניגשים אליו.

        נ.ב. אני מוכרח לציין שהצורה היחידה שהצלחתי לשרשר את הפונקציה היתה ככה:

          ${'root' . $this->get_string_peremeters_folders()}
        

        תודה רבה

        (נ.ב מתסכל זה כשאתה לא עושה טעות והבאג הוא בקוד, לא כשאתה כתבת לא נכון ולכן לא הבינו אותך).

        תגובה 1 תגובה אחרונה
        1
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #8

          אני מבין את הבעיה.
          הידע שלי בPHP מוגבל מידי לעזור, לא הצלחתי.
          http://sandbox.onlinephpfunctions.com/code/95d5277b20f359e88efb8c2de3992713d729ea41

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

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

          תגובה 1 תגובה אחרונה
          1
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #9

            התקדמתי בעזרת חברים:
            http://sandbox.onlinephpfunctions.com/code/3ed381a5489d029d44ad77ee490e920194c34d82

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

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

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

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

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

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

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

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

                $root . if(iseet(roldera)){['foldera']} . if(iseet(rolderb)){['folderb']};
                

                לא הצלחתי לבצע.

                @dovid אמר בשרשור פרמטרים של array בקוד php:

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

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

                תגובה 1 תגובה אחרונה
                0
                • dovidD מחובר
                  dovidD מחובר
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #12

                  לא חושב שהבנת אותי.
                  עם איזה פונקציה אתה משתמש בשביל לקבל את הקבצים/התיקיות?

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

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

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

                    (כתבתי ב-3 חלקים כיון שהוא לא נתן לי לכתוב פוסט ארו יותר מ-100 תוים)

                    לא מדובר על קבצים ותיקיות אמיתיים ולכן המבנה של קבלת הנתיב הוא לא בהכרח בסגנון home/dovid/dagim/.

                    הפונקציה שעשיתי נותנת לי סטרינג במבנה

                    $root['Objects']['foldera']
                    

                    וכמו שכתבתי התברר שהבעיה היא שהPHP צריך לקבל אובייקטים ולא סטרינג, לכן הוא נתן את השגיאה הנ"ל, בשונה מהמקרה בו הבאתי לו את הנתיב בלי פונקציה, שאז הוא קיבל את זה מצויין, בגלל שהיה לו אובייקטים ממשיים. (המשתנה $root ושתי אובייקטי המשנה שאחריו).

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

                      @dovid אמר בשרשור פרמטרים של array בקוד php:

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

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

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

                        חשבתי על 2 כיוונים לפתרון, את הראשונה לא הצלחתי ליישם, והשניה אולי אעשה אותה אם אין פתרון אמיתי,

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

                           $$root = $root;
                           $$root += "['objects']";
                           $$root += "['foldera']";
                           return $$root;
                        

                        בינתיים אני מקבל שגיאה

                            Uncaught Error: Unsupported operand
                        

                        והשניה: להשתמש בספריה הזו, ובאמת לשלוח סטרינג. מקוה שזה ילך
                        https://github.com/adbario/php-dot-notation
                        https://packagist.org/packages/adbario/php-dot-notation

                        ושוב תודה על העזרה וההשקעה.

                        תגובה 1 תגובה אחרונה
                        0
                        • dovidD מחובר
                          dovidD מחובר
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי dovid
                          #16

                          בפעם האלף @chagold, אין אופציה לעזור כל עוד אתה לא פורש תמונה נורמלי.
                          אין לי מושג מה הקלט שלך ומה הפלט הרצוי, אתה נמצא ב"אמצע" - הסתדרת למחצה ואתה מבקש עזרה בנקודה בה אתה נתקע. למשל יש לך פונקציה שמייצרת סטרינג $root['Objects']['foldera'], שזו פונקציה מיותרת ובלתי שימושית.
                          אז אתה חפץ להפוך את הסטרינג לייצוג האמיתי שלו בPHP, חבל! קח את הקלט המקורי - ואותו תהפוך לאובייקט מקונן למשל ע"י הקוד שהראתי.
                          הקוד האחרון שלך הוא בכיוון אבל הוא עם הרבה העדר ידע בPHP ועם יותר רצון להצליח נקודתית מאשר ללמוד.

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

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

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

                            @dovid
                            תודה רבה! המשימה הוכתרה בהצלחה.

                            תגובה 1 תגובה אחרונה
                            2

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

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

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