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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
17 פוסטים 2 כותבים 1.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום