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

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



  #1  
ישן 20-01-2010, 00:59
  orl2006 orl2006 אינו מחובר  
 
חבר מתאריך: 01.07.05
הודעות: 176
בעיה|פונקציה שכתבתי ולא עובדת - לדעתי באג ב-PHP

אני משתגע כבר, עברתי על הקוד כל-כך הרבה פעמים, הרצתי ב-JAVA ועובד, ואין לי מושג למה זה לא עובד ב-PHP.
הפונקציה אמורה לקבל מחרוזת, ולבדוק אם היא שווה לאחת המחרוזות שבתוך מערך שהיא יוצרת:
אם כן, להחזיר True. ואם לא, להחזיר False.
זה הכל! O_O

הנה הפונקציה ב-PHP:
קוד PHP:
 function test($settings){
    
    
$count 0;
    
$status false;
    
$array = array(=> "morning"=> "afternoon"=> "evening");
    for(
$i 0$i count($array); $i++){
        if(
$settings == $array[$i]){
            
$count++;            
        }        
    }
    if(
$count == 1){
        
$status true;
    }
    
    return 
$status;    
            



קלט:
קוד:
echo test("morning"); echo test("dsagsdgsdsdg");


פלט:
קוד:
1


הפונקציה ב-Java (לאחר המרה של הפונקציה לשפת Java):
קוד PHP:
 public static boolean test(String settings){

    
int count 0;
    
boolean status false;
        
String array[] = {"morning""afternoon""evening"};
    for(
int i 0< array.lengthi++){
        if(
settings.equals( array[i])){
            
count++;
        }
    }
    if(
count == 1){
        
status true;
    }

    return 
status;

}




קלט:
קוד:
System.out.println(test("morning")); System.out.println(test("dsagsdgsdsdg"));


פלט:
קוד:
true false



למישהו יש רעיון למה ב-PHP הוא מחזיר פלט כזה? וב-Java מחזיר פלט כמו שהוא אמור להיות?





תודה מראש,
orl2006. =]

נערך לאחרונה ע"י orl2006 בתאריך 20-01-2010 בשעה 01:02.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 20-01-2010, 07:09
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,776
בתגובה להודעה מספר 1 שנכתבה על ידי orl2006 שמתחילה ב "בעיה|פונקציה שכתבתי ולא עובדת - לדעתי באג ב-PHP"

משום שאתה לא יכול להדפיס את הערך הלוגי false בפקודת echo...

אני משער שהוא כן מנסה להדפיס את זה, ופשוט עושה cast ל string. כיוון ש 0 ב ascii שווה ל null, לא אמור להיות מודפס שום דבר חזותי (אבל פליטה לקובץ ובדיקה ב hex dump או סתם העברה ל hexdump עם pipe אם יש לך במערכת ההפעלה שלך תוכל לאמת טענה זו...).

הדרך הנכונה לבדוק ערך בוליאני שהוחזר מפונקציה היא להשתמש ב... if, לפחות בכל שפות התכנות שאני מכיר, ובהתאם ל if לעשות מה שרוצים (למשל להדפיס 1...).

בכל אופן, אם אתה מתעקש לעבוד כך, אם תעשה cast ל int, זה יעבוד...
קוד PHP:
 echo (int) test("dsagsdgsdsdg"); 


כמובן שכל הקוד שלך מבוסס על חשיבה ג'אווה-אית ולכן אתה מממש מחדש משהו ש PHP כבר יודעת לעשות בקוד הרבה יותר קצר...

הקוד הבא שקול לקוד שלך:
קוד PHP:
<?php

function test($settings)
 {   
    return (
in_array($settings, array("morning""afternoon""evening")));
 }  

echo (int) 
test("morning");
echo (int) 
test("dsagsdgsdsdg");
?>
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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