הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 08-04-07, 20:28   # 1
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 30
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

[מדריך] PHP - למתחיל בOOP. חלק א' וב'.

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

[*] המדריך נכתב על ידי אמיר פרידמן. אין להעתיק או לפרסם מדריך זה בשום מקום ללא אישור ממני באימייל: INvisioN.net@gmail.com. המדריך נכתב בלשון זכר אך מיועד גם למתוקות שקוראות מדריך זה =]


חלק א'. - מה זה תכנות מונחה-אובייקטים?
כאשר אתה עובד עם תכנות מונחה-אובייקטים, אתה בעצם בונה "מזוודה" שבתוכה את ה"אורז" נתונים ופונקציות יחדיו כאובייקטים. בעזרת שיטת עבודה זו, אתם תוכלו לפצל את הקודים שלכם אפילו יותר.
בעזרת תכנות מונחה-אובייקטים תוכלו לבנות "מזוודה" ( מעכשיו נקרא לזה - "מחלקה" ) שתנהל לכם כמעט כל חלק באתר.

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

לאחר שהבנו מה זה מחלקות, השאלה הבאה נשאלת... כיצד זה עובד? ובכן, כאן מתחיל
חלק ב'. - עבודה עם תכנות מונחה-אובייקטים.
ראשית אנחנו צריכים ליצור את המחלקה. מחלקה מגדירה את סוג האובייקט, לדוגמא אנחנו יכולים ליצור מחלקה בשם Cars על ידי שימוש במשפט - "class", מחלקה זה יכולה להכיל בתוכה כמה מאפיינים פנימיים ( משתני מחלקה ) על ידי שימוש במשפט - "var".
  • דגם
  • צבע
PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

[ שים לב! ] ניתן לקבוע ערכים קבועים אך פשוטים מראש עבור המאפיינים ( משתני מחלקה ) בצורה הזאת:
PHP קוד:
    var $model "No model"
אך אי אפשר לקבוע ערכים מחושבים בדוגמא לזה: ( וגם אי אפשר להציב משתנים )
PHP קוד:
    var $model "Not"."good"
על מנת לפנות למאפיינים ( משתני מחלקה ) מתוך המחלקה אנחנו משתמשים במשתנה המובנה - "$this" המצביע אל המחלקה הנוחכית. במשתנה זה משתמשים עם אופרטור החץ - "<-" בצורה כזאת:
PHP קוד:
$this->model $model
לאחר שהגדרנו מחלקה, אנחנו יכולים להציב "מתודות" ( פונקציות ) במחלקה.
במקרה שלנו אנחנו ניצור כמה פונקציות:
  • set_model
  • set_color
  • get_model
  • get_color

PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

    function 
set_model($model)
    {
        
$this->model $model;
    } 

    function 
set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_model()
    {
        return 
$this->model;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 

על מנת לפנות לפונקציות ( מתודות ) מתוך המחלקה אנחנו משתמשים במשתנה המובנה - "$this" המצביע אל המחלקה הנוחכית. במשתנה זה משתמשים עם אופרטור החץ - "<-" בצורה כזאת:
PHP קוד:
$this->set_color("Black"); 
לפיכך אפשר להבין שבעצם המשתנה $this משמש גם לפניה למאפיינים וגם למתודות.

כעת, לאחר שסיימנו להגדיר את המחלקה אפשר ליצור אובייקטים של אותה מחלקה תוך כדי שימוש במשפט - "new". לדוגמא אנחנו יכולים ליצור אובייקט $BMW. את האובייקטים אנחנו מאכסנים במשתנים רגילים.
בצורה הבאה אנחנו יוצרים את האובייקט:
PHP קוד:
$BMW = new Cars
כעת, לאחר שכבר יש לנו את האובייקט, אין לו עדין צבע ומודל מוגדר, לשם כך אנחנו צריכים לפנות אל הפונקציות שבנינו מקודם.

קודם כל חשוב להבהיר, שברגע שאנחנו פונים למאפיינים ומתודות מחוץ למחלקה אנחנו פונים אליהם בצורה שונה מאשר "$this->". אנחנו עושים את זה בעזרת משתנה האובייקט ( במקרה שלנו $BMW ).
PHP קוד:
$BMW->set_model("Z4M"); 
וככה זה נראה לאחר שהגדרנו את המודל ואת הצבע, ולאחר מכן פנינו אל המתודות get_model וget_color על מנת לקבל את המודל והצבע:
PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

    function 
set_model($model)
    {
        
$this->model $model;
    } 

    function 
set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_model()
    {
        return 
$this->model;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 


$BMW = new Cars;
$BMW->set_model("Z4M");
$BMW->set_color("red");
echo 
"Are you sure you want to purchase <font color=\"".$BMW->get_color()."\"> ".$BMW->get_color()."</font> BMW ".$BMW->get_model()."?"
לסיום חלק ב' נעשה סיכום קצר על הקוד המלא שמלמעלה ^:
תחילה הגדרנו את המחלקה על ידי שימוש במשפט - "class" ופתחנו אותה באמצעות סוגריים מסולסלים:
PHP קוד:
class Cars

לאחר מכן הגדרנו את שני המאפיינים של המחלקה שלנו:
PHP קוד:
    var $model;
    var 
$color
ועכשיו הגדרנו את ארבעת המתודות המתוקות שלנו ( אני אציג רק את set_color ואת get_color כדי לחסוך במשאבי הפורום, במילא הקוד המלא למעלה. ):
PHP קוד:
    function set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 
סגרנו את המחלקה באמצועת סוגריים מסולסים:
PHP קוד:

עכשיו הגדרנו אובייקט למחלקה:
PHP קוד:
$BMW = new Cars
הכנסנו ערכים למשתנים: [*] במידה והקצתם ערך ברירת מחדל למשתנה זה לא ישפיע, זה בעצם כמו שתעשו:
PHP קוד:
$str "LOL";
$str "Muhahaha";
echo 
$str// Return's Muhahaha 
אז שוב, XD, הכנסנו למשתנים ערכים:
PHP קוד:
$BMW->set_model("Z4M");
$BMW->set_color("red"); 
ולבסוף הבאנו לפלט משפט נחמד במידה ואתם עושים אתר קניית מכוניות { יש אתר כזה? [ טוב נו נגיד וזה אתר של קניית פסלים של מכוניות בגודל קטן...( מינאטורי ) ] }
PHP קוד:
echo "Are you sure you want to purchase <font color=\"".$BMW->get_color()."\"> ".$BMW->get_color()."</font> BMW ".$BMW->get_model()."?"
וכאן מסתיים לו חלק ב' הסקסי!
מתי שיהיה לי שוב זמן פנוי ( יום שבת הבא כנראה ), אכתוב את החלקים הבאים =]

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

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

בהצלחה P:
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql

Last edited by reXtea; 08-04-07 at 20:39..
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
מדריך למתחילים, מדריך oop, מדריך php


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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