לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 30-08-2005, 23:59
צלמית המשתמש של דור
  דור דור אינו מחובר  
 
חבר מתאריך: 09.04.02
הודעות: 8,000
קריאה לפונקציה ע"י מספר הארגומנטים שסופקו

כתבתי פונקציה, שבתוכה יש קריאה לפונקציה אחרת.
הפונקציה הראשית מתחילה ככה:
קוד PHP:
 function func($bla$bla2$bla3$arg1$arg2
כאשר arg1 ו-arg2 הם אופציונאליים.
בעיה אחת, היא שאם אני לא נותן את כל הארגומנטים לפונקציה שאני כותב, היא מוציאה שגיאה. את בעיה זו ניתן לפתור על ידי נתינת הערך null לארגומנטים האופציונאליים, אבל זה עדייך סתם סיבוך ומבזבז לי 8 תווים. יש פתרון יותר נורמלי?

בעיה שניה:
אני רוצה לבצע את הפונקציה המשנית (זו שבתוך הפונקציה הראשית) כשהיא מקבלת פרמטרים אופציונאליים שנשלחים מהפוקציה הראשית. למשל:
קוד PHP:
 function func($bla$bla2$bla3$arg1$arg2)
{
    
func2($bla$arg1);

כמו שאתם רואים, חלק מהפרמטרים ש-func2 מקבלת הם אופציונאליים, וחלקם לא.
כדי להחליט אם אני רוצה להשתמש בפרמטרים האופציונאליים, אני משתמש במבנה if, שבודק אם הפרמטרים האופציונאליים (כאמור, arg1 ו-arg2) שווים ל-null או לא. אם הם לא שווים ל-null (כלומר יש להם ערך) אני קובע מחרוזת שתשמש כקריאה ל-func2, ומפעיל אותה עם eval. הנה דוגמא:
קוד PHP:
 if ($arg1 != null && $arg2 null)
            {
                
$str 'function($arg, $arg1)';
            }
            elseif (
$arg1 != null && $arg2 != null)
            {
                
$str 'function($arg, $arg1, $arg2)';
            }
            eval(
$str); 
יש דרך יותר אלגנטית/נוחה/קצרה לעשות את זה?


תודה מראש לעוזרים!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #10  
ישן 03-09-2005, 21:15
צלמית המשתמש של דור
  דור דור אינו מחובר  
 
חבר מתאריך: 09.04.02
הודעות: 8,000
קוד מלא:
בתגובה להודעה מספר 1 שנכתבה על ידי דור שמתחילה ב "קריאה לפונקציה ע"י מספר הארגומנטים שסופקו"

קוד PHP:
 function image_edit($filename$type$quality$arg1=null)
{    
    
$format exif_imagetype("$filename");        
    if (!
$format)
    {
        echo 
"1";
    }
    else
    {
        switch(
$format)
        {            
            case 
1:
                
$source imagecreatefromgif("$filename");
            break;
            case 
2:
                
$source imagecreatefromjpeg("$filename");
            break;
            case 
3:
                
$source imagecreatefrompng("$filename");
            break;
        }
        
        if (
$arg1 == null)
            
$filtered_image imagefilter($source$type);
        elseif (
$arg1 != null)
            
$filtered_image imagefilter($source$type$arg1);

        
$url_valid url_make_filename($filename);
        
$newfilename 'changed_'."$url_valid";
        
        if (@
imagejpeg($filtered_image$newfilename$quality))
        {
                return 
$newfilename;
        }
        else
        {
            echo 
"2";
        }
    }


השגיאה המוחזרת לי היא 2, מה שאומר שיש בעיה בשורה הזו:
קוד PHP:
 if (@imagejpeg($filtered_image$newfilename$quality)) 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 15:01

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר