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

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



  #3  
ישן 01-05-2007, 20:13
  משתמש זכר davidman davidman אינו מחובר  
 
חבר מתאריך: 27.04.05
הודעות: 441
בתגובה להודעה מספר 2 שנכתבה על ידי דור שמתחילה ב "תצהיר עליו כמשתנה סטטי"

זה לא עזר ,חוץ מזה עם אני מגדיר את המשתנה כ STATIC אז הערך שהיה בו מקודם ישאר ויוסף לערך החדש , זה לא מה שאני צריך .
אני יביא את הקוד שלי ותנסה לעזור לי .
הנה הקוד שלי :
קוד PHP:
 function Tree($pid){ 
global 
$parents;
global 
$childs;
while(
$parentrow mysql_fetch_array($parents)){
echo 
"<br>",$parentrow['conntent'];
$child_id $parentrow['id'];
while(
$childrow mysql_fetch_array($childs)){
Tree($child_id);
}

}


זאת הפונקציה , אני צריך להשתמש במשתנה
קוד:
$child_id
מחוץ לפונקציה .
איך אני עושה את זה ?

המטרה שלי היא שבשאליתה שיש לי למעלה יהיה שימוש ב
קוד:
$child_id

הנה כול הקוד :
קוד PHP:
 ####parents####
$parents mysql_query("SELECT * FROM `parent_posts` WHERE parent_id = '$pid' ");
####childs####
$childs mysql_query("SELECT * FROM `parent_posts` WHERE parent_id = '$child_id' ");
function 
Tree($pid){ 
global 
$parents;
global 
$childs;
while(
$parentrow mysql_fetch_array($parents)){
echo 
"<br>",$parentrow['conntent'];
$child_id $parentrow['id'];
while(
$childrow mysql_fetch_array($childs)){
Tree($child_id);
}

}
}  
Tree("0");
?> 


תודה על העזרה .
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 03-05-2007, 08:54
צלמית המשתמש של DRagonRage
  DRagonRage DRagonRage אינו מחובר  
 
חבר מתאריך: 22.02.05
הודעות: 496
שלח הודעה דרך ICQ אל DRagonRage
מצתאר אבל
בתגובה להודעה מספר 10 שנכתבה על ידי maxim k שמתחילה ב "שימוש במשתנים גלובליים לא..."

מי אמר לך שלא מומלץ להשתמש במשתנה גלובאלי - אולי ב c הטענה שלך נכונה במחציתה
אבל לא ב php
לפותח האשכול: למה שלא תמצא את הילדים שלך בתוך הפונקציה?
משהוא בסגנון של:
קוד PHP:
 function Tree($pid){ 
        global 
$parents;
        global 
$childs;
        
$parents mysql_query("SELECT * FROM `parent_posts` WHERE parent_id = '$pid' ");
        while(
$parentrow mysql_fetch_array($parents)){
                echo 
"<br>",$parentrow['conntent'];
                
$child_id $parentrow['id'];
                
$childs mysql_query("SELECT * FROM `parent_posts` WHERE parent_id = '$child_id' ");
                while(
$childrow mysql_fetch_array($childs)){
                        
Tree($child_id);
                }

        }
}  
Tree("0"); 

אגב זה
children
ולא
childs

ועם מדברים על לגשת למשתנה בלי global:
קוד PHP:
<?php
        
function asd(&$a) {     
                
$a 5;
        }

        
$b 20;
        
asd($b);
        echo 
$b;//output:5
?>


נערך לאחרונה ע"י DRagonRage בתאריך 03-05-2007 בשעה 09:00.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 04-05-2007, 19:46
צלמית המשתמש של DRagonRage
  DRagonRage DRagonRage אינו מחובר  
 
חבר מתאריך: 22.02.05
הודעות: 496
שלח הודעה דרך ICQ אל DRagonRage
בתגובה להודעה מספר 12 שנכתבה על ידי davidman שמתחילה ב "כי זה בדיוק מה שהיה לי מקודם..."

lets say parents have a parent id set to 0
then something like this:
קוד PHP:
<?php
    
    $db 
mysql_query("SELECT * FROM `parent_posts` ORDER BY `parent_id`") or die(mysql_error());
    while(
$rows mysql_fetch_array($db)) {
        
$pid $rows['parent_id']; unset($rows['parent_id']);
        
$row[$pid][] = $rows;
    }
    
    function 
Tree($id ,$row) {
        foreach(
$row[$id] as $value){
            echo 
"<br>".$value['conntent'];
            
$children $row[$value['id']];
            foreach(
$children as $child)
                
Tree($child['id'] ,$row);
        }
    }
Tree($row);
    
?>

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 03-05-2007, 16:39
צלמית המשתמש של maxim k
  maxim k maxim k אינו מחובר  
 
חבר מתאריך: 05.08.06
הודעות: 2,860
שלח הודעה דרך MSN אל maxim k
בתגובה להודעה מספר 11 שנכתבה על ידי DRagonRage שמתחילה ב "מצתאר אבל"

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

כדי לחסוך בהסברים אני אשים כמה ציטוטים מויקיפדיה :
ציטוט:
They are usually considered bad practice precisely because of their nonlocality: a global variable can potentially be modified from anywhere, and any part of the program may depend on it. A global variable therefore has an unlimited potential for creating mutual dependencies, and adding mutual dependencies increases complexity.
....
The use of global variables makes software harder to read and understand. Since any code anywhere in the program can change the value of the variable at any time, understanding the use of the variable may entail understanding a large portion of the
program.
...
The setting of a global variable can create side effects that are hard to understand and predict. The use of globals make it more difficult to isolate units of code for purposes of unit testing, thus they can directly contribute to lowering the quality of the code.


והטענה שלך "אולי בc אבל לא בphp" היא טפשית. אם כבר אז בc לעתים יש הצדקה לשימוש במשתנים גלובליים, בעוד שבphp אף פעם אין הצדקה כזאת.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 04-05-2007, 22:48
צלמית המשתמש של DRagonRage
  DRagonRage DRagonRage אינו מחובר  
 
חבר מתאריך: 22.02.05
הודעות: 496
שלח הודעה דרך ICQ אל DRagonRage
חולק עליך
בתגובה להודעה מספר 14 שנכתבה על ידי maxim k שמתחילה ב "לא מומלץ להשתמש במשתנים..."

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 04-05-2007, 23:29
צלמית המשתמש של maxim k
  maxim k maxim k אינו מחובר  
 
חבר מתאריך: 05.08.06
הודעות: 2,860
שלח הודעה דרך MSN אל maxim k
בתגובה להודעה מספר 15 שנכתבה על ידי DRagonRage שמתחילה ב "חולק עליך"

ציטוט:
אני מדבר על סי כפי שהיא נוצרה בהתחלה לא הסינטאקס החדש ולא ++
אכן היתה הצדקה לשימוש במשתנים גלובאלים בידיוק כמו הצדקה לשימוש בלולאות goto
אבל עכשיו בסי אין הצדקה ... - הורשה וכו

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

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

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

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

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

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

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



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

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

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

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