تدریس خصوصی برنامه نویسی به زبان php
یه توضیح اجمالی در رابطه با برخی مفاهیم در کلاس :
-
برای ایجاد یک آبجکت از کلمه کلیدی کلاس استفاده میکنیم.
کلاس=class - هر کلاس یک ابجکت می باشد.
- هر کلاس از تعدادی پروپرتی و متد تشکیل شده است.
-
پروپرتی که بهش اتریبیوت هم میگن میشه همون متغییر ها.
پروپرتی =peroperties
اتریبیوت=attributesبه متغییر های داخل کلاس پروپرتی میگن.
-
متد ها همون توابع هستن.
متد=methods
توابع= functions -
هر متد یا پروپرتی ای یه ویژگی ای داره که میزان دسترسی اونو مشخص میکنه.
مثلا پابلیکه به این معنی که همه جا چه در داخل کلاس و چه در خارج کلاس قابل دسترسی هست.
مثلا پرایوته به این معنا که فقط در داخل کلاس قابل دسترسی هست.
و در آخر پروتکتت هست به این معنی که هم در داخل کلاس و هم در کلاس هایی که از کلاس موجود ارث بردن قابل دسترسی هست.
پابلیک=public
پرایویت=private
پروتکتد=protected -
به public , static , private , ,….. مودی فایر میگن
مودی فایر=modifiers
برای درک بهتر می توانید جزئیات را در کلاس Emailer مشاهده نمایید:
class Emailer { // نکته ی مهم در ایجاد کلاس این است که با حروف بزرگ شروع میشود. // مثال= EmailerSending // peroperties private $sender; private $recipients; private $subject; private $body; //methods function __construct($sender) { // هنگام ایجاد نمونه ای از آبجکت این متود به صورت اتوماتیک اجرا میشود. //special method // به متد کانستراکتور میگن متود ویژه $this->sender = $sender; $this->recipients = array(); // نکته مهم: برای دستیابی به پروپرتی ها و متد های یک کلاس از $this استفاده میکنیم. //$this->body; //$this->setSubject(); //$this به نمونه ایجاد شده از شئ اشاره داره //نکته از $this فقط در داخل نمونه استفاده میشود // و برای پروپرتی ها و متد های استاتیک استفاده نمیشود //استاتیک= static //نمونه = instance } public function addRecipients($recipient) { array_push($this->recipients, $recipient); } public function setSubject($subject) { $this->subject = $subject; } public function setBody($body) { $this->body = $body; } public function sendEmail() { foreach ($this->recipients as $recipient) { $result = mail($recipient, $this->subject, $this->body, "From: {$this->sender}\r\n"); if ($result) echo "Mail successfully sent to {$recipient}<br/>"; } } }
استفاده از آبجکت
$emailerobject = new Emailer("hasin@pageflakes.com"); // instance of emailer // ایجاد نمونه ای از آبجکت ایمیلر // به صورت اتوماتیک ابتدا کانستراکتور فراخونی میشه. پس ابید یک ارگومان بنویسید // در صورتی که آرگومانی انتخاب نکنین سیستم بهتون ارور میدهد //$email=new Emailer(); error //Warning: Missing argument 1 for emailer::__construct(), //called in C:\OOP with PHP5\Codes\ch1\class.emailer.php on line 42 //and defined in <b>C:\OOP with PHP5\Codes\ch1\class.emailer.php</b> //on line <b>9</b><br /> $emailerobject->addRecipients("hasin@somewherein.net"); // متد ها و پروپرتی های پابلیک امکان فراخونی از خارج از کلاس را دارند. $emailerobject->setSubject("Just a Test"); $emailerobject->setBody("Hi Hasin, How are you?"); $emailerobject->sendEmail();