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

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

Tyler 07-11-14 18:10

אפשרי להתחיל לולאה רצה בתוך משתנה?
 
האם זה אפשרי להריץ לולאה בתוך משתנה?
הכוונה שלי היא כזו:

PHP קוד:

$play $random('mytable','DEAL'options(
'code' => $code,
'id' => $id,

foreach(.........){
.........
........
'hand' => $value['card']
}

)
); 


זה דבר אפשרי? להתחיל להריץ לולאה שתוגדר מראש לדוגמא ל5, ואז בעצם הFOREACH יהיה עד 5 ויחלק קלף שונה כל פעם במשך 5 פעמים אך לבסוף יהיו לאותו משתמש 5 קלפים שונים בסה"כ ביד.

לדעתי זה כן אפשרי רק לא בדרך שאני עשיתי את זה כי בדרך שעשיתי את זה זה בטוח לא יעבוד (וגם לא עובד כרגע)

מה אתם אומרים?

Erez | TrustMedia.co.il 08-11-14 21:58

תיצור את המערך של הoptions לפני כן, ותוסיף לו את הערכים שאתה רוצה בforeach ואז תעביר אותו למשתנה. משהו כזה:

PHP קוד:

$options =array (
    
'code' => $code,
    
'id' => $id
);
foreach(.........){
    
$options['hand'] => $value['card']
}

$play $random('mytable','DEAL'options($options)); 


איציק ברבי 09-11-14 01:35

ציטוט:

נכתב במקור על ידי Erez.info (פרסם 892366)
תיצור את המערך של הoptions לפני כן, ותוסיף לו את הערכים שאתה רוצה בforeach ואז תעביר אותו למשתנה. משהו כזה:

PHP קוד:

$options =array (
    
'code' => $code,
    
'id' => $id
);
foreach(.........){
    
$options['hand'] => $value['card']
}

$play $random('mytable','DEAL'options($options)); 


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

Tyler 10-11-14 01:17

ציטוט:

נכתב במקור על ידי איציק ברבי (פרסם 892368)
לא הבנתי למה אתה מתכוון,
תעשה פונקציה חדשה שבתוכה יהיה את הלולאה המבוקשת ואת הפלט תוסיף למשתנה בכל פעם שהלולאה רצה ובסוף הלולאה תעשה return ל משתנה.

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

אפשר הסבר למה שניסית להגיד בצורת קוד?

Tyler 10-11-14 01:52

ציטוט:

נכתב במקור על ידי Erez.info (פרסם 892366)
תיצור את המערך של הoptions לפני כן, ותוסיף לו את הערכים שאתה רוצה בforeach ואז תעביר אותו למשתנה. משהו כזה:

PHP קוד:

$options =array (
    
'code' => $code,
    
'id' => $id
);
foreach(.........){
    
$options['hand'] => $value['card']
}

$play $random('mytable','DEAL'options($options)); 


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

unexpected T_DOUBLE_ARROW
ומדובר בשורה הבאה
PHP קוד:

$options['hand'] => $value['card'

עריכה:
הכנסתי את הקוד לNETBEANS וזה לא מזהה את את המשתנה בכלל של ה$options שמדובר עליו בשורה שהבאתי למעלה.
זה מזהה את המשתנה $OPTIONS כמשתנה זהה רק בשורה הראשונה :

PHP קוד:

$options =array ( 

ובשורה האחרונה
PHP קוד:

$play $random('mytable','DEAL'options($options)); 

בשורה שהבאתי, בזאתי
PHP קוד:

$options['hand'] => $value['card'

המשתנה לא מזוהה בכלל כמשתנה / חלק מהמערך.

Erez | TrustMedia.co.il 10-11-14 06:41

תוריד את החץ, טעות שלי

Tyler 10-11-14 12:59

ציטוט:

נכתב במקור על ידי Erez.info (פרסם 892397)
תוריד את החץ, טעות שלי

אם אני אשאיר את זה
PHP קוד:

$options['hand'] = $value['card'

טוב ארז, תודה ענקית, זה עובד.

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

- יצרתי מערך מסוים
- אחריו אני מכניס כל פעם למשתנה ערך שונה בעזרת לולאת foreach
- לבסוף אני משתמש באותו מערך עם הערך האחרון של הלולאה בלבד וכל שאר הערכים בעצם לא השתמשתי בהם

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

אני רוצה להריץ את כל המערך אבל להכניס אליו בכל פעם למשתנה של ה'hand' ערך שונה ושהוא יריץ את המערך פעם אחת בלבד, אבל ספציפית את הHAND כמה פעמים שצריך לפי הforeach.

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

Erez | TrustMedia.co.il 10-11-14 13:47

אז תעביר את השורה של ה foreach לתחילת הקוד, ותסגור אותו בסוף.

Tyler 10-11-14 13:58

הצלחתי ארז :)
תודה על העזרה.


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

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