جزئیات تعریف یک کلاس در php

تدریس خصوصی برنامه نویسی به زبان php
یه توضیح اجمالی در رابطه با برخی مفاهیم در کلاس :

  1. برای ایجاد یک آبجکت از کلمه کلیدی کلاس استفاده میکنیم.
    کلاس=class
  2. هر کلاس یک ابجکت می باشد.
  3. هر کلاس از تعدادی پروپرتی و متد تشکیل شده است.
  4. پروپرتی که بهش اتریبیوت هم میگن میشه همون متغییر ها.
    پروپرتی =peroperties
    اتریبیوت=attributes

    به متغییر های داخل کلاس پروپرتی میگن.

  5. متد ها همون توابع هستن.
    متد=methods
    توابع= functions
  6. هر متد یا پروپرتی ای یه ویژگی ای داره که میزان دسترسی اونو مشخص میکنه.
    مثلا پابلیکه به این معنی که همه جا چه در داخل کلاس و چه در خارج کلاس قابل دسترسی هست.
    مثلا پرایوته به این معنا که فقط در داخل کلاس قابل دسترسی هست.
    و در آخر پروتکتت هست به این معنی که هم در داخل کلاس و هم در کلاس هایی که از کلاس موجود ارث بردن قابل دسترسی هست.
    پابلیک=public
    پرایویت=private
    پروتکتد=protected
  7. به 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();

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *