
מהו תכנות מונחה אובייקטים? תכנות מונחה אובייקטים(Object-Oriented Programming - OOP)
תכנות מונחה אובייקטים אינו חובה ליצירת דפי אינטרנט ב-PHP, אך אם תרצה לבנות אתרים גדולים שיטה זו יכולה לחסוך לך הרבה זמן וקוד.
תכנות ה-OOP(מונחה אובייקטים) נוצר בכדי לעזור לטפל בכמויות גדולות של משימות למיניהן.
להבדיל מפונקציות, ה-OOP, מאפשר לך "לארוז" משתנים ופונקציות יחדיו כאובייקטים(Objects).
מי שיש לו רקע בתכנות בשפות כמו JAVA, C++, PASCAL וכ'ו, יכול להבין את המדריך יותר בקלות.
השתכנעתי! איך מתחילים?
דוגמה טובה ביותר להתחיל היא לחשוב על משהו פשוט, כמו למשל לעשות מחלקת עובדים.
בשביל זה נכתוב:
קוד PHP:
class Wroker
{
var $WrokerName;
function setWrokerName($Text){
$this->WrokerName = $text; //set the wroker name
}
function getWrokerName(){
return $this->WrokerName; //get the wroker name
}
}
אז מה עשינו פה?
קודם כל יצרנו מחלקה חדשה בשם "Wroker".
אח"כ הגדרנו משתנה בשם "WrokerName", אלו שחשבו שיש טעות כמו: "למה מתחילים עם var? הלא מתחילים משתנה ב-PHP עם $ !"
זהו, שאתם צודקים! פשוט בהגדרת משתנה המחלקה, כך צריך לעשות זאת (PHP..).
לאחר מכן הגדנו פונקציה חדשה בשם setWrokerNam, שהיא כשמה; שמה את המשתנה "WrokerName" לפי הקלט.
אז יצרנו פונקציה בשם "getWrokerName" שגם היא כשמה, מקבלת את שם העובד ומחזירה אותו עם הפקודה return.
שימו לב!
עד כה, אם רשמתם/העתקם את הקוד לא אמור לקרות כלום, כי עדיין לא קראנו למחלקה (לעת עתה..

)
בשביל לקרוא למחלקה ולהגדיר נתונים נרשום כך:
קוד PHP:
$Smoxer = new Wroker;
$Smoxer->setWrokerName("-Smoxer-");
echo("The wroker name is " . $Smoxer->getWrokerName() . ".");
והתוצאה תיהיה מין הסתם:
The wroker name is -Smoxer-.
כעיקרון, לא עשינו משהו מיוחד. קראנו למחלקה החדשה בשם $Smoxer, וקראנו לפונקציות בשם דרך הסימן "->"(בשפות אחרות כמו JAVA במקום הסימן "->" יש את הנקודה ".")
אז אחרי שהבנו קצת, בואו נשחק עם זה קצת ונגדיר דברים שהעובד יכול לעשות 
קוד PHP:
class Wroker
{
var $WallColor;
function drawWall($Color){
$this->WallColor = $Color;
}
function getWallColor(){
return $this->WallColor;
}
}
פשוט הגדרנו שהעובד יכול רק לצבוע קירות ולדעת מה הצבע.
הורשה
מהי הורשה?
הורשה היא.. הורשה!
כן, כן, X יכול להוריש ל-Y דברים.
זה מתבטא ב-OOP בכך שמחלקה אחת יכולה להוריש לשנייה.
איך זה עוזר?
זה עוזר בעיקר בלרשום פחות שורות קוד.
לדוגמה, העובד יכול לצבוע קירות, המנהל יכול לשנות את השכר, המנכ"ל יכול לשנות את שם החברה וכ'ו.
בשביל לעשות הורשה ידרשו לנו שתי מחלקות, אחת "Wroker" שכבר יש לנו ושנייה "Manager" שנגדיר עכשיו עם הורשה לעובד בכדי שיוכל לבצע את הפעולות של העובד + הפעולות שייחודיות למנהל.
קוד PHP:
class Wroker
{
var $WallColor;
function drawWall($Color){
$this->WallColor = $Color;
}
function getWallColor(){
return $this->WallColor;
}
}
class Manager extends Wroker
{
var $Salary;
function setSalary($Price){
$this->Salary = $Price;
}
function getSalary(){
return $this->Salary;
}
}
class CEO extends Manager
{
var $CompanyName;
function setCompanyName($Name){
$this->CompanyName = $Name;
}
function getCompanyName(){
return $this->CompanyName;
}
}
טיפה ארוך אבל פשוט מאוד!
הגדרנו שהמנהל יורש מהעובד והמנכ"ל מהמנהל, כך שכל אחד יכול לעשות מה שהכפוף לו יכול לעשות!
אתחול אובייקטים עם בנאים
במקום להשתמש בשיטה:
קוד PHP:
$Color = new Wroker;
$Color->drawWall("Red");
echo("The wall\'s color is " . $Color->getWallColor() . ".");
אפשר לצמצם את זה בעזרת בנאים:
קוד PHP:
$Color = new Wroker("Red");
echo("The wall\'s color is " . $Color->getWallColor() . ".");
ורק נצטרך לשנות את המחלקה Wroker:
קוד PHP:
class Wroker
{
var $WallColor;
function __construct($Color){
$this->WallColor = $Color;
}
function drawWall($Color){
$this->WallColor = $Color;
}
function getWallColor(){
return $this->WallColor;
}
}
אפשר לעשות את השיטה לכל מחלקה 
שימו לב!
אפשר לשים "בונה" בכל מחלקה, כלומר אפשר לשים בונה ב-Wroker, Manager ו-CEO פעם אחת בכל מחלקה!
עד פה! 
כל הזכויות שמורות לי ובלעדיות לאטרף!