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

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

WebProject 03-12-05 10:50

[מדריך] PHP - מחלקות ואובייקטים
 
מחלקות ואובייקטים

מחלקה היא בעצם אוסף של משתנים ופונקציות העבודות ביחד.

תחום הגדרת מחלקה הוא class או בעברית מחלקה.

מדוע כדאי לי להשתמש בOOP?

דרך זאת נוחה בהרבה יותר מכתיבת קוד רגיל, צורת כתיבה זאת מסדרת את הקוד, ויהיה יותר קל להתמצא בו
.


אז איך מגדירים מחלקה?

מחלקה היא צורת כתיבה קלה לשימוש, ונכתב *בדומה* לכתיבת פונקצייה.

כתיבת מחלקה מתבצעת בצורה הבאה:

PHP קוד:

<?Php
     
class classname// defining the class name
                  
.... // class's code
     
}
?>

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

{} - סוגרים מסולסלות, ביניהם יכנס תוכן המחלקה.
classname - שם הפונקצייה, ניתן לכתוב כל שם שעולה בראשכם.

הגדרת משתני מחלקה

מהו משתנה מחלקה?

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

הגדרת משתנה מתבצעת ע"י var.

דוגמא:

PHP קוד:

<?Php
             
class myfirst{
               
          var 
$hello "hello world";        

 }
?>

קריאה למשתנה מסוג זה מתבצעת ע"י $this -> variable

שימוש במשתני מחלקה בתוך פונקציית מחלקה
PHP קוד:

<?Php
class hey{
    var 
$myname;

          function 
myname($name){

                 
$this -> myname $name;              

        }
}
?>

זימון מחלקה, והפעלתה

מה הכוונה זימון מחלקה והפעלתה?

לאחר שתכתבו מחלקה, אתם תשימו לב שמופיע דף ריק, ללא שום אחת מפעולות המחלקה.

למה?

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

אז איך עושים זאת?

זה פשוט מאוד, הכל מתבצע בצורה הבאה:

PHP קוד:

<?Php

$variable 
= new classname// will "call" the class "classname"

?>

מה עשיתי כאן?

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

אבל

בכל מקרה, קוד זה יציג לכם עדיין דף ריק.

אז מה עושים?

מה שצריך לעשות זה בעצם לקרוא גם לפונקצייה בה אתם מעוניים ליצור שימוש.

אבל איך עושים זאת?

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

כל זה מתבצע בצורה הבאה:

PHP קוד:

<?Php
$varibale 
= new myclass;
$varibale -> myfunction(); // will return the function's content
?>

מה שעשיתי כאן בעצם זה קריאה למחלקה כמו שלמדנו, לאחר מכן, השתמשתי במשתנה המחלקה שהגדרתי בחלק הראשון של הקוד, ולבסוף, קראתי לפונקצייה ע"י שימוש בשמה ובתווים ->.

כל מה שלמדנו יכול להתחבר למחלקות שימושיות ויעילות עד מאוד, כמו למשל מחלקות לשימוש SQL וכו'.

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

דוגמא למחלקה:

PHP קוד:

<?Php
 
class names{


          var 
$myname;

   function 
whatismyname($name){

             
$this -> myname $name;

       } 

}

$name = new names// creating a new "show"
$name -> whatismyname("tal");
   print 
$name -> myname// will print "tal" as was defined in the function
?>

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

הדוגמא הכי נפוצה לשימוש במחלקות היא מחלקת הSQL.

אבל כיוון שבדיוק למדתם על זה, אתם כבר תצליחו לבד ;)



-------------

במדריך הבא, אני מתכוון להסביר על בנאים וכל ההמשך, שלא תחשבו שזה הכל :)


מקווה שהמדריך שלי יעזור לנזקקים לו, טל :rolleyes:

Raz 03-12-05 10:54

פשש כל הכבוד על ההשקעה אחי
יפה!

Espire 03-12-05 10:54

למרות שאני יודע את זה זה עזר לי לרענן את הזיכרון תודה אחי

WebProject 03-12-05 10:57

:)

sUP 03-12-05 11:03

TNX

s.o.s 03-12-05 11:26

מדריך מעולה כמו המתכנת שרשם אותו :)

רומן 03-12-05 11:47

נחמד, אני מאלה שממש לא משתמשים בזה כי זה לדעתי מאוד לא שימושי,
אבל הרבה כן משתשמים, מדריך נחמד מאוד!

satan 03-12-05 11:57

מדריך טוב !D:

תודה. [:


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

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