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

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



  #5  
ישן 23-08-2011, 20:45
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 4 שנכתבה על ידי KingYes שמתחילה ב "זה מה שכתבתי."

אתה בטוח?

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

http://php.net/language.variables.scope

מה שאני הצעתי, לעומת זאת, זה לכתוב מתודה פומבית בתוך המחלקה (וללא כל שימוש ב scope הגלובלי...) - שתקרא את המשתנה הרלוונטי, המכומס בתוך האובייקט (אפילו כ private), ותחזיר אותו - ככה שמבחוץ אי אפשר להתעסק עם המשתנה הזה - ולשם כיוונתי ששאלתי אם זה לא כל הרעיון (של OOP...)

אז זה מה שהצעת?
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 24-08-2011, 08:43
  fadey fadey אינו מחובר  
 
חבר מתאריך: 15.07.02
הודעות: 1,027
בתגובה להודעה מספר 8 שנכתבה על ידי KingYes שמתחילה ב "לא תמיד טוב לעשות מחלקות..."

לא עושים מחלקות ב Static, אתה אולי מתכוון לשיטות.

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

לא פירטת מה בדיוק אתה מעוניין לשתף, לרוב זו אינה נתפסת כדרך "נכונה" לכתוב, אך כפי שאתה יודע, בני האדם
הם אלה שכותבים את הקוד ולכן כמעט אף פעם לא יהיה ניתן לבצע משהו בצורה שלא ניתן לשפר, לכן אם אינך מוצא
מוצא, תבצע את מה שאתה חייב בעזרת static, לשם כך הם נועדו (לפחות בphp) רק ששים לב ש"שיתוף" שכזה
לא משתף את השדות, כלומר השיטה הסטטית לא תכיר את כל השדות של המחלקה שאיתה אתה משתף אותה.

לסיכום, רצוי להמנע ממצבים שכאלה, אך אם המניעה היא טרחה גדולה, תלך על הפתרון הפחות טוב.
_____________________________________
ציטוט:
Different people use different tools, but its mostly morons who pretend that the problems with PHP actually matter.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #10  
ישן 26-08-2011, 14:59
  DHT20 DHT20 אינו מחובר  
 
חבר מתאריך: 15.01.09
הודעות: 96
אני אתן דוגמה לכוונה שלי
בתגובה להודעה מספר 1 שנכתבה על ידי DHT20 שמתחילה ב "OOP| מחלקה בתוך מחלקה"

זה מחלקת DB
קוד PHP:
 class DB{
    public 
$mysqli;
    private 
$fetchMode MYSQLI_BOTH;
    public function  
__construct($db) {
        
$this->mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['table']);
        if (
mysqli_connect_errno()) {
            
printf("<b>Connection failed: %s\n"mysqli_connect_error());
            exit;
        }
    }
    public function 
query($SQL){
        
$this->SQL $this->mysqli->real_escape_string($SQL);
        
$this->result $this->mysqli->query($SQL);

        if (
$this->result == true) return true;
        else{
            
printf("<b>Problem with SQL: %s\n"$this->SQL);
            echo 
$this -> mysqli->error;
            exit;
        }
    }
    public function 
get($field NULL$againNULL){
        if (
$field == NULL){
            
/** Grab all the data */
            
$data = array();
            while (
$row $this->result->fetch_array($this->fetchMode) ){
                
$data[] = $row;
            }
        }
        else{
            
$row $this->result->fetch_array($this->fetchMode);
            
$data $row[$field];
        }
        
$this->result->close();
        return 
$data;
    }
    public function 
id(){
        return 
$this->mysqli->insert_id;
    }
    public function 
__destruct(){
        
$this->mysqli->close();
    } 


ואני רוצה לקרוא לה מתוך מחלקה אחרת (CMS במקרה הזה)
ככה:
קוד PHP:
 class CMS{
    private 
$db;
    public function 
__construct($config) {
           
$this::db = new DB($config['db']);
    }
  



אתם שמתם לב שאני רוצה להשתמש במחלקה DB בצורה חופשית
ולא יעזור לי סטטיות כמו שחלק הציעו
ובצורה שאני הראתי מי ששם לב זה קצת בעייתי...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 28-08-2011, 02:11
  fadey fadey אינו מחובר  
 
חבר מתאריך: 15.07.02
הודעות: 1,027
בתגובה להודעה מספר 14 שנכתבה על ידי DHT20 שמתחילה ב "איך אני אסביר לך את זה אני..."

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

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

ועוד משהו, אם אתה רוצה לייצר משהו ספציפי ואתה לא יודע איך, מותר לך לשאול.. ולא ללכת סביב סביב בייחוד כשאתה כנראה לא כ"כ בקיא בחומר.
_____________________________________
ציטוט:
Different people use different tools, but its mostly morons who pretend that the problems with PHP actually matter.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #17  
ישן 28-08-2011, 21:26
  DHT20 DHT20 אינו מחובר  
 
חבר מתאריך: 15.01.09
הודעות: 96
בתגובה להודעה מספר 16 שנכתבה על ידי fadey שמתחילה ב "לא נראה לך מתאים הורשה במקרה..."

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

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

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


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

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

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

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

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



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

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

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

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