PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Get- und Set-Methoden

20. Juli 2020
  1. Home
  2. »
  3. Für Fortgeschrittene
  4. »
  5. Objektorientierte Programmierung
  6. »
  7. PHP Design Patterns
  8. »
  9. Get- und Set-Methoden
PHP Design Patterns
Buchtipp: PHP Design Patterns

In der Objektorientierte Programmierung werdet ihr häufig den Einsatz von Get- und Set-Methoden finden. Auch wenn deren Einsatz zu Beginn unnötig kompliziert aussieht und viele Programmieranfänger auf diese gerne verzichten, stellen diese Methoden eine elegante Art- und Weise dar, wie der Zugriff auf die Klasse funktioniert.

Inhaltsverzeichnis

  • 1 Get- und Set-Methode definieren
  • 2 Zugriff auf Klassenvariablen
  • 3 Wieso sollte man Get- und Set-Methoden nutzen?

Get- und Set-Methode definieren

Der Sinn von Get- und Set-Methoden ist es, eure internen Klassenvariablen gegen Zugriff von außen zu schützen. Dies geht, indem ihr die Sichtbarkeit der Klassenvariablen auf entweder private oder protected setzt.

<?php
class User {
	protected $email;
	protected $password;
	
	public function getEmail() {
		return $this->email;
	}
	
	public function setEmail($email) {
		$this->email = $email;
	}
	
	public function getPassword() {
		return $this->password;
	}
	
	public function setPassword($password) {
		$this->password = $password;
	}
?>

Bei dieser einfachen Klassen habt ihr die beiden Klassenvariablen $email und $password. Da deren Sichtbarkeit auf protected gesetzt sind, kann auf diese von außen nicht Zugriffen werden. Dafür wird je Klassenvariable eine entsprechende Get-Methode definiert (getEmail und getPassword). Diese gibt den Wert entsprechend zurück.

Ebenfalls wird eine Set-Methode definiert (setEmail und setPassword). Die Set-Methode erhält als Argument den neuen Wert für die Variable und aktualisiert die Variable.

Zugriff auf Klassenvariablen

Nutzt man Get- und Set-Methoden, so sieht der Zugriff auf diese Variablen etwas anders aus:

1
2
3
4
5
6
7
<?php
$user = new User();
$user->setEmail("[email protected]");
$user->setPassword("geheim");
 
echo "Die E-Mail-Adresse: ".$user->getEmail();
?>

Statt also direkt auf die Klassenvariablen zuzugreifen, wird stattdessen immer die Get- oder Set-Methode verwendet.

Wieso sollte man Get- und Set-Methoden nutzen?

Erstmal sieht der Einsatz der Get- und Set-Methoden unnötig kompliziert aus. Der große Vorteil ist aber, dass ihr den Zugriff zentral in der Klasse kontrollieren könnt.

Angenommen ihr möchtet sicher gehen, dass die $email-Klassenvariable stets eine gültige E-Mail-Adresse enthält. Wenn ihr direkt auf diese Klassenvariable von außen zugreift, so müsstet ihr euren gesamten Code durchgehen und schauen wo einem User-Objekt eine E-Mail-Adresse zugewiesen wird. Dieses kann bei großen Projekten recht aufwendig sein.

Mittels den Get- und Set-Methoden könnt ihr die Überprüfung zentral bündeln:

<?php
class User {
	protected $email;
	
	public function getEmail() {
		return $this->email;
	}
	
	public function setEmail($email) {
		if(filter_var($email, FILTER_VALIDATE_EMAIL)) { //eine gültige E-Mail-Adresse wurde übergeben 
			$this->email = $email;
			return true;
		}
		return false;
	}
}	
$user = new User();
$neue_email = "falsche-email-adresse";
if($user->setEmail($neue_email)) {
   echo "Die E-Mail-Adresse wurde gespeichert";
} else {
   echo "Die E-Mail-Adresse konnte nicht gespeichert werden. Ggf. ist diese ungültig";
}
?>

Mittels Get- und Set-Methoden könnt ihr ebenfalls Klassenvariablen definieren, die Read-Only sind, indem ihr die Set-Methode weglasst. Die ID eines Users sollte man z.B. auslesen können, aber nicht verändern können.

Ebenfalls kann man damit Write-Only Klassenvariablen erstellen, indem die Get-Methode weggelassen wird. Zum Beispiel kann man das Passwort verändert, ein Auslesen des Passworts soll aber nicht möglich sein.

Autor: Nils Reimers
Zurück: PHP Design Patterns
Weiter: Model-View-Controller in PHP

Für Fortgeschrittene

  • Objektorientierte Programmierung
    • Referenzierung in OOP
    • Sichtbarkeit in OOP
    • Methoden und Konstruktoren
    • Statische Methoden und Eigenschaften
    • Vererbung
    • Design Patterns
      • Get und Set
      • Model-View-Controller
      • Template-Pattern
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur

Hoster – Geringste Ausfallzeit

  1. netcup Ø 0 Min.
  2. webgo Ø 0 Min.
  3. Linevast Ø 3 Min.
  4. All-Inkl.com Ø 3 Min.
  5. checkdomain Ø 4 Min.
  6. dogado Ø 6 Min.
  7. Strato Ø 8 Min.
  8. manitu Ø 10 Min.
  9. 1&1 Ø 10 Min.
  10. DomainFactory Ø 14 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2025

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}