تعریف متدهای یک کلاس

در جلسات قبل در مورد ساخت توابع در php به طور کامل صحبت کردیم. به توابعی که به طور خاص در یک کلاس تعریف می شوند،متد (method) گفته می شود و تمامی کارهایی که یک نمونه شی انجام می دهد را داخل متدها تعریف می کنیم.

مثال:

برای کلاس myClass یک متد به نام setUsername تعریف می کنیم که در آن متغیر username را مقدار دهی می کند.

class myClass {
    public $username = 'hesam';
    public function setUserName($newUser) {
        return $this -> username = $newUser;
    }
}
PHP

نکته: توجه داشته باشید در بدنه متدها برای دسترسی به شی ساخته شده در خارج از کلاس بایستی از کلمه کلیدی $this استفاده کنیم. با این کار مقدار متغیر اشاره شده برابر با مقداری می شود که توسط شی ساخته شده تعیین شده باشد. به مثال زیر توجه کنید.

class myClass {
    public $username = 'hesam';
    public function setUserName($newUser) {
        return $this -> username = $newUser;
    }
}
$obj = new myClass;
echo $obj -> setUserName('danial');
PHP

خروجی کدهای بالا به شکل زیر می شود:

danial

در مثال بالا می توانیم مقدار متغیر username را در تابع setUserName مقداردهی کنیم و در تابعی جدید با نام getUserName مقدار را return کنیم.

class myClass {
    public $username = 'hesam';
    public function setUserName($newUser) {
        return $this -> username = $newUser;
    }
    public function getUserName () {
        return $this -> username;
    }
}
$obj = new myClass;
$obj -> setUserName('danial');
echo $obj -> getUserName();
PHP

خروجی کدهای بالا به صورت زیر می شود.

danial

می توانیم این مقدار دهی را توسط شی ساخته شده چندین بار انجام دهیم و مقدارهای جدید داشته باشیم:

<?php

class myClass {
    public $username = 'hesam';
    public function setUserName($newUser) {
        return $this -> username = $newUser;
    }
    public function getUserName () {
        return $this -> username . '<br>';
    }
}
$obj = new myClass;
$obj -> setUserName('danial');
echo $obj -> getUserName();

$obj -> setUserName('ahmadreza');
echo $obj -> getUserName();
PHP

خروجی کدهای بالا به شکل زیر می شود

danial
ahmadreza

 

آیا این پاسخ به شما کمک کرد؟ 26 کاربر این را مفید یافتند (26 نظرات)