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

Statische Methoden und Eigenschaften

10. Februar 2020
  1. Home
  2. »
  3. Für Fortgeschrittene
  4. »
  5. Objektorientierte Programmierung
  6. »
  7. Statische Methoden und Eigenschaften

Mittels dem Schlüsselwort static  könnt ihr bei der Objektorientierten Programmierung (OOP) statische Methoden und Eigenschaften definieren. Diese Methoden und Eigenschaften sind nicht an ein einzelnes Objekt gekoppelt, also beispielsweise nicht an einen einzelnen Nutzer, sondern sie gelten global.

Beispiel

Nachfolgend ein Beispiel, um die Nutzung von statischen Klasseneigenschaften und Klassenmethoden zu verdeutlichen:

<?php
class User {
	public $name;
	
	public static $allUsers = array();
	
	public static function numberOfUsers() {
		return count(self::$allUsers);
	}
	
	public static function createNewUser($name) {
		if(strlen($name) < 10) {
			echo "Nur User mit langen Namen sind erlaubt!<br>";
			return null;
		} else {
			$user = new User();
			$user->name = $name;
		
			self::$allUsers[] = $user;
		
			return $user;
		}
	}
}

User::createNewUser("Max Mustermann");
echo "Anzahl Nutzer: ".User::numberOfUsers()."<br>";
User::createNewUser("Lisa Kurz");
echo "Anzahl Nutzer: ".User::numberOfUsers()."<br>";
?>

Dieses Script besitzt eine nicht-statische Klasseneigenschaft $name sowie die statische Eigenschaft $allUsers. Ebenfalls besitzt die Klasse zwei statische Methoden, $numberOfUsers und $createNewUser.

Möchten wir auf die statische Klasseneigenschaft $allUsers zugreifen, so müssen wir vorab den Klassenname spezifizieren. Beispielsweise wie folgt:

1
echo count(User::$allUser);

Sofern ihr innerhalb der Klasse seid, könnt ihr auf diese statische Eigenschaft auch mittels self::$allUsers zugreifen wie in Zeile 8 und 19 zu sehen.

Mittels der statischen Methode createNewUser($name) können wir neue User-Objekte erzeugen, aber nur wenn der angegeben Name auch ausreichend lang war. Jedes erzeugte User-Objekt wird dann in self::$allUsers abgespeichert.

Um auf diese Methode von außerhalb zuzugreifen, müsst ihr entsprechend User::createNewUser("Name");  ausführen. Identisch User::numberOfUser(); um die Methode auszuführen. Wie schon bei den statischen Klasseneigenschaften könnt ihr self::methodenName()  ausführen, falls ihr euch innerhalb einer Methode befindet.

Wann verwende ich statische Methoden und Eigenschaften?

Vorallem statische Methoden werden häufig verwendet, um gewisse Funktionalitäten zu kapseln. Angenommen ihr baut einen Online-Shop. In einer Klasse User könnt ihr alle Methoden definieren, um eure Datenbanktabelle mit Benutzer zu verwalten. Beispielsweise habt ihr eine statische Methode zum Erzeugen eines neuen Benutzers oder zum finden von existenten Benutzern. Neben der User-Klasse habt ihr dann eine weitere Klasse für eure Produkte, in der ebenfalls entsprechende statische Methoden definiert sind. Euer Programmcode wird, wie im nachfolgenden Beispiel gezeigt, deutlich lesbarer.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
class User {
// Entsprechender Code für eure Benutzerverwaltung
}
 
class Product {
// Entsprechender Code für eure Produktverwaltung
}
 
//Erstellung neuer Nutzer
User::createNewUser("Max Muster", "[email protected]", "geheimes passwort");
 
//Finden eines Users
$lisa = User::find("[email protected]");
echo $lisa->email;
 
//Erzeugen eines Produkts
Product::createNewProduct("Spielekonsole", "19,99 Euro");
 
$playstation = Product::find("Playstation");
echo $playstation->price;
?>

 

Autor: Nils Reimers
Zurück: Methoden und Konstruktoren
Weiter: Vererbung

Für Fortgeschrittene

  • Objektorientierte Programmierung
    • Referenzierung in OOP
    • Sichtbarkeit in OOP
    • Methoden und Konstruktoren
    • Statische Methoden und Eigenschaften
    • Vererbung
    • Design Patterns
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur
  • DGUV V3
  • DGUV 3
  • CasinoAndy Finland
  • Casinopilot24.com
  • Neueonline-Casinos.com
  • CasinoHEX.at
  • Decasinos.de
  • Privatkredit247.com
  • Online Casino Spielautomaten
  • Casinofrog.com
  • parhaatuudetkasinot.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 0 Min.
  2. Linevast Ø 3 Min.
  3. netcup Ø 3 Min.
  4. dogado Ø 6 Min.
  5. Mittwald Ø 9 Min.
  6. All-Inkl.com Ø 10 Min.
  7. manitu Ø 10 Min.
  8. bplaced Ø 11 Min.
  9. checkdomain Ø 11 Min.
  10. Host Europe Ø 14 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2022

Um dich beim Lernen von PHP und MySQL zu unterstützen verwenden wir Cookies. OK Weitere Infos
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Notwendige
immer aktiv

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Nicht notwendige

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.