הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] כיצד ניתן להכניס מערך בארגומנטים בפונקציות? (https://hosts.co.il/forums/showthread.php?t=52146)

inTouch 16-08-07 02:24

[PHP] כיצד ניתן להכניס מערך בארגומנטים בפונקציות?
 
בארגומנטים, בפונקציות, אני מעוניין להכניס את המערך:
PHP קוד:

$calculator = array (actionnum1num2); 

בפונקצייה הבאה:
PHP קוד:

function MathFunc (HERE goes my array) 

תודה מראש :).

Gal Shafrir 16-08-07 04:02

לא הבנתי מה הבעיה...
PHP קוד:

MathFunc($calculator); 


חיים 16-08-07 08:21

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

MathFunc (array("action"=>"+","num1"=>1,"num2"=>2)); 


inTouch 16-08-07 13:20

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

function MathFunc (HERE goes my array!)
return 
"asd"


Ben Segal 16-08-07 14:41

כמו שגל אמר כבר למעלה.
מכניסים באותה צורה שאתה מכניס משתנה רגיל.
קוד:

MathFunc($calculator);

inTouch 16-08-07 14:52

אוקי, תודה רבה.

יש לי עוד שאלה, האם ישנה שגיאה בקוד הבא? זה תוכן הפונקצייה, לכן נמצא שם הRETURN...
PHP קוד:

switch ($calculator ['action'])
    case 
1;
    return 
$calculator ['num1'] + $calculator ['num2']; 


Ben Segal 16-08-07 14:57

כן...
לאחר הcase צריך להיות נקודותיים רגילות ( : ).
ולא נקודה פסיק ( ; )
זה הקוד המתוקן:
PHP קוד:

switch ($calculator ['action']) 
    case 
1:
    return 
$calculator ['num1'] + $calculator ['num2']; 


inTouch 16-08-07 15:07

עדיין ישנה שגיאה.
השגיאה היא:
PHP קוד:

errorsyntax errorunexpected T_CASEexpecting ':' or '{' 

יכול להיות שמקור השגיאה הוא לאו דווקא מהשורה הזו למרות שצויין שממספר השורה הוא מקור השגיאה?

Ben Segal 16-08-07 15:10

תוכל לשלוח את הקוד המלא?

Meir 16-08-07 15:21

משפט switch אמור להיות בסגנון הזה:

PHP קוד:

switch($calculator ['action'])
{
case 
1:
return 
$calculator ['num1'] + $calculator ['num2'];



Ben Segal 16-08-07 15:44

ציטוט:

נכתב במקור על ידי Meir (פרסם 542786)
משפט switch אמור להיות בסגנון הזה:

PHP קוד:

switch($calculator ['action'])
{
case 
1:
return 
$calculator ['num1'] + $calculator ['num2'];



צריך גם break בסוף...

Gal Shafrir 16-08-07 16:00

זה לא אמור להיות משהו בסגנון הזה:
PHP קוד:

<?php

switch($calculator ['action'])
{
    case 
"+":
    return 
$calculator ['num1'] + $calculator ['num2'];

    break;
}

?>

?

inTouch 16-08-07 16:06

הנה הקוד המלא. אני כמעט בטוח שטעיתי במערך.. אם כן אז איך ניתן לבנות מערך עם מפתחות שאני מגדיר אבל לא להגדיר את הערכים [לא NULL]?

PHP קוד:

$calculator = array (
"action" => '',
"num1" => '',
"num2" => ''
);

function 
MathFunc ($calculator)
{
    switch (
$calculator ['action'])
    case 
1:
        return 
$calculator ['num1'] + $calculator ['num2'];
        break;
    case 
2:
        return 
$calculator ['num1'] - $calculator ['num2'];
        break;
    case 
3:
        if (
$calculator ['num2'] == 0)
        return 
"באג נמצא.";
        return 
$num1 $num2;
        break;
    case 
4:
        return 
$calculator ['num1'] * $calculator ['num2'];
}

$answer MathFunc (350); 


חיים 16-08-07 16:46

במשפט switch חייב להיות פתיחה וסיום בדר"כ זה ע"י { ו- } אבל לפעמים גם עם : ועוד משהוא שככתי איך סוגרים את זה חח בכל זאת אתה חייב לפתוח את הסוויצץ בידיוק כמו את ה-IF וכל שאר הדברים שיש לך..

4ior 16-08-07 16:57

יש לך הרבה שגיאות, קוד מתוקן:
PHP קוד:

function MathFunc ($calculator)
{
    switch (
$calculator ['action'])
    case 
1:
        return 
$calculator ['num1'] + $calculator ['num2'];
        break;
    case 
2:
        return 
$calculator ['num1'] - $calculator ['num2'];
        break;
    case 
3:
        if (
$calculator ['num2'] == 0)
        return 
"נמצא באג".($num1 $num2);
        break;
    case 
4:
        return 
$calculator ['num1'] * $calculator ['num2'];
}
$calculator=array();
$calculator['action']=3;
$calculator['num1']=5;
$calculator['num2']=0;
$answer MathFunc ($calculator); 


inTouch 16-08-07 20:55

השינוי היחידי שעשית היה במבנה המערך ומיקומו בקוד.
לא משנה, תודה על העזרה אבל עדיין ישנה שגיאה והפעם היא:
Parse error: syntax error, unexpected T_CASE, expecting ':' or '{'
בשורה:
PHP קוד:

    case 1


חיים 16-08-07 21:03

תגיד אתה בכלל מקשיב מה שאומרים לך?הביאו לך קוד מתוקן לגמריי ואתה ממשיך עם אותה השגיעה השיגעה היא שלא פתחת ולא סגרת את המשפט סויצץ גל הביא לך קוד דוגמה למה שאתה צריך לשנות מה לא מובן פה?

4ior 16-08-07 21:39

עכשיו לא אמורה להיות שום שגיאה:
PHP קוד:

function MathFunc ($calculator)
{
    switch (
$calculator ['action'])
{
    case 
1:
        return 
$calculator ['num1'] + $calculator ['num2'];
        break;
    case 
2:
        return 
$calculator ['num1'] - $calculator ['num2'];
        break;
    case 
3:
        if (
$calculator ['num2'] == 0) return "נמצא באג".($calculator ['num1'] / $calculator['num2']);
        break;
    case 
4:
        return (
$calculator ['num1'] * $calculator ['num2']);
}
}
$calculator=array();
$calculator['action']=3;
$calculator['num1']=5;
$calculator['num2']=0;
$answer MathFunc ($calculator); 


inTouch 16-08-07 21:55

חיים, שמע חבוב, קודם כל תרגיע..
ושנית, השגיאה האחרונה שהצגתי הייתה מהקוד שלו.
הסתדרתי כבר, מצאתי את השגיאה שהייתה לי בסוף האמת ללא הקוד האחרון שקיבלתי מ4ior אבל באמת תודה לכולם, אתם קהילה נפלאה :).

אפשר כבר לנעול, שוב תודה ולילט לכולם.


כל הזמנים הם GMT +2. הזמן כעת הוא 01:45.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ