2017-04-09 106 views
1

我從中學習的書雖然並不總是必要的,但它通常被認爲是具有getter和setter方法的良好實踐。Get方法和Set方法在類中的區別

就是這樣說,每個例子中的方法在我啓動一個對象並傳遞一個值給方法時工作正常。

所以我只是想知道什麼是1

Class Something{ 
    public $email; 
     function getEmail($newEmail){ 
     return $this->email = $newEmail; 
    } 
} 

例以下

例之間的區別2

Class Something{ 
    public $email 
    function setEmail($newEmail){ 
    $this->email = $newEmail 
    } 
    function getEmail(){ 
    return $this->email 
    } 
} 

例1

$obj = new Something(); 
    echo $obj->getEmail('[email protected]'); //prints email address 

例2

$obj->setEmail('[email protected]') 
$obj->getEmail()//prints email adress 

我看不出爲什麼額外的步驟是例如2必需的,也許是因爲我(非常)新OOP & PHP。我只是認爲在繼續之前瞭解它們之間的差異很重要,因爲我的書沒有詳細說明。

回答

1

因爲你並不總是wan't獲得,並在同一時間

setter是設定值,併爲獲得一個吸氣設定的電子郵件。(正如其名字所暗示的)

有時你只需要改變你的電子郵件的價值。有人更新他們的電子郵件並重定向到他們沒有看到他們的電子郵件的新頁面。您只需使用setEmail($email)即可設置新郵件,但您不需要知道該郵件。

另一種方式,有時你只需要得到一些東西(你不知道它的價值)。例如,你得到你的用戶配置文件,它需要顯示你的電子郵件。然後您使用getEmail()並獲取它。你不想先設置電子郵件,因爲你已經有了價值。所以你只想收到它。

因此,在例1中,在收到郵件之前,您總是需要知道電子郵件。但是,如果你還不知道電子郵件,這是行不通的。

您可以使用示例1作爲setter方法,因爲它可以讓您更改該值,並且您通常希望在之後收到它。

對於良好的做法,總是隻使用一個吸氣劑和一個裝置分開

相關問題