heidari 5 ارسال شده در تیر 94 گزارش بازنشر ارسال شده در تیر 94 در مبحث معرفی کلاس ها در PHP به معرفی کلاس ها پرداختیم. حال میخواهیم به فیلد ها دسترسی پیدا کنیم و اشیا درون کلاس PHP را معرفی کنیم. به عنوان نمونه یک بخشی از مثال درس قبل را توضیح میدهمpublic function SetBody($body) {$this->body = $body;} 1 2 3 public function SetBody($body) { $this->body = $body; } در ابتدای این کد فیلد Body را به صورت private تعریف کردیم. حال میخواهیم این فیلد را درون یک متد به کارببریم. برای این کار از this$ استفاده میکنیم. this$ تنها به شی اشاره میکند. بنابراین this$->body یعنی فیلد body از شی ای که درون متد SetBody تعریف شده فراخوانی میشه.نکته : لازم نیست بعد از فلش this$ فیلد ها را با $ تعریف کنید. PHP خود متوجه میشود که آن فیلد است نه متد. ( بعد از متد ها همیشه { می آید )کد مثال درس قبل را دوباره قرار میدهم :<?phpclass Emailer {private $sender;private $recipients;private $subject;private $body;public function __construct($sender) {$this->sender = $sender;$this->recipients = array();}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/>" . PHP_EOL;}}}}?> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?php class Emailer { private $sender; private $recipients; private $subject; private $body; public function __construct($sender) { $this->sender = $sender; $this->recipients = array(); } 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/>" . PHP_EOL; } } } } ?> کد نوشته شده مانند یک نقشه می ماند، طرح اولیه برای یک خانه، یک میز یا هر چیز دیگر. حال باید این نقشه را اجرا کنیم. برای اجرا کردن باید یک شی برای این نقشه یا همان کلاس خودمان ایجاد کنیم. پس میتوانیم بگوییم یک کلاس به تنهایی قابل استفاده نیست. معرفی اشیا درون کلاس PHPبرای معرفی یک شی از کلمه new استفاده می کنیم. به مثال زیر دقت کنید:<?php $emailerObject = new Emailer('mmshfe@gmail.com');?> 1 2 3 4 <?php $emailerObject = new Emailer('mmshfe@gmail.com'); ?> بدین ترتیب یک شی به نام emailerObject ایجاد کردیم. در این مثال در بخش construct_ یک مقدار ورودی قرار دادیم (sender$). بنابراین هنگام ساختن شی جدید نیز باید برای آن مقدار در نظر بگیریم. تابع construct_ مقدار سازنده کلاس را در برمیگیرد. به جای آن میتوانید نام کلاس را نیز قرار دهید اما باید توجه داشته باشید که با تغییر نام کلاس ،باید نام این تابع سازنده را نیز تغییر دهید. حال میخواهیم با استفاده از این کلاس یک ایمیل ارسال کنیم.فرستادن ایمیل با استفاده از یک کلاس PHP<?php $emailerObject = new Emailer('mmshfe@gmail.com'); $emailerObject->AddRecipient('info@xoogle.ir'); $emailerObject->SetSubject('Test'); $emailerObject->SetBody('Hi, I\'m a test email!'); $emailerObject->SendEmail();?> 1 2 3 4 5 6 7 8 9 <?php $emailerObject = new Emailer('mmshfe@gmail.com'); $emailerObject->AddRecipient('info@xoogle.ir'); $emailerObject->SetSubject('Test'); $emailerObject->SetBody('Hi, I\'m a test email!'); $emailerObject->SendEmail(); ?> در این شی جدید مقدار فرستنده mmshfe@gmail.com است، با استفاده از متد AddReciptient یک گیرنده فراخوانی اضافه کردیم، با استفاده از متد SetSubject یک عنوان اضافه شد و به همین ترتیب بخش های دیگر تعریف شده اند.حال با استفاده از این کلاس میتوانیم یک ایمیل ارسال کنیم. نقل قول لینک به ارسال
علی زینلی 2114 ارسال شده در تیر 94 گزارش بازنشر ارسال شده در تیر 94 سلام ، به انجمن خوش اومدید ، لطفاً کیفیت آموزش های خودتون رو با ادغام کردن اون ها در تاپیک مربوطه ، استفاده از BBcode های مخصوص ، معرفی منبع و مطالعه پیش نمایش آموزشتون بالا ببرید آموزشی که الآن ارسال کردید به هیچ وجه خونده نمیشه و در نتیجه مفید هم نیست. نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .