PHP Grundlagen: Der komplette Einsteiger-Guide 2025
Starte deine PHP-Reise mit den Grundlagen: Syntax, Datentypen, Variablen, Kontrollstrukturen und Funktionen. Mit praktischen Beispielen und modernen PHP 8+ Features für eine solide Basis in der Webentwicklung.
🐘 Warum PHP lernen?
PHP ist eine der beliebtesten Programmiersprachen für Webentwicklung. Sie ist einfach zu lernen, vielseitig einsetzbar und wird von Millionen von Websites verwendet – von kleinen Blogs bis zu großen Plattformen wie Facebook und WordPress.
📚 Inhaltsverzeichnis
1. PHP Syntax & Grundlagen
PHP-Code wird zwischen <?php
und ?>
Tags geschrieben. Jede Anweisung endet mit einem Semikolon.
🚀 Dein erstes PHP-Programm
<?php
// Kommentar: Dein erstes PHP-Programm
echo "Hallo Welt!";
/*
Mehrzeiliger Kommentar
für längere Erklärungen
*/
print "PHP ist großartig!";
?>
💡 Wichtige Syntax-Regeln
- • PHP ist case-sensitive bei Variablen, aber nicht bei Funktionen
- • Jede Anweisung muss mit einem
;
enden - • Variablen beginnen immer mit
$
- • Strings können mit
"
oder'
definiert werden
2. Datentypen & Variablen
PHP ist eine dynamisch typisierte Sprache. Das bedeutet, du musst den Datentyp einer Variable nicht explizit angeben – PHP erkennt ihn automatisch.
📊 Die wichtigsten Datentypen
🔢 Zahlen
<?php
// Integer (Ganzzahl)
$alter = 25;
$negative = -10;
// Float (Dezimalzahl)
$preis = 19.99;
$pi = 3.14159;
📝 Strings
<?php
// Einfache Anführungszeichen
$name = 'Max Mustermann';
// Doppelte Anführungszeichen
$begruessung = "Hallo $name!";
// String-Verkettung
$volltext = $name . ' ist 25 Jahre alt';
✅ Boolean
<?php
$ist_aktiv = true;
$ist_admin = false;
// Vergleiche ergeben Boolean
$ist_erwachsen = $alter >= 18;
🚫 Null
<?php
$leer = null;
// Uninitialisierte Variable
var_dump($nicht_definiert); // null
🔍 Typ-Überprüfung
<?php
$wert = 42;
// Typ ermitteln
echo gettype($wert); // "integer"
// Typ prüfen
if (is_int($wert)) {
echo "Das ist eine Ganzzahl!";
}
// Weitere Typ-Prüfungen
is_string($name); // true
is_bool($ist_aktiv); // true
is_null($leer); // true
3. Kontrollstrukturen
Kontrollstrukturen steuern den Programmfluss. Sie entscheiden, welcher Code ausgeführt wird und wie oft er wiederholt wird.
🔀 if/else Bedingungen
<?php
$alter = 20;
if ($alter >= 18) {
echo "Du bist volljährig!";
} elseif ($alter >= 16) {
echo "Du darfst Moped fahren!";
} else {
echo "Du bist noch minderjährig.";
}
// Ternärer Operator (Kurzform)
$status = ($alter >= 18) ? "Erwachsen" : "Minderjährig";
🔄 Schleifen
🔁 for-Schleife
<?php
// Zahlen von 1 bis 10
for ($i = 1; $i <= 10; $i++) {
echo $i . " ";
}
// Ausgabe: 1 2 3 4 5 6 7 8 9 10
🔄 while-Schleife
<?php
$counter = 0;
while ($counter < 5) {
echo "Counter: " . $counter;
$counter++;
}
🎯 switch-Anweisung
<?php
$wochentag = "Montag";
switch ($wochentag) {
case "Montag":
echo "Start in die Woche!";
break;
case "Freitag":
echo "Endlich Wochenende!";
break;
case "Samstag":
case "Sonntag":
echo "Wochenende!";
break;
default:
echo "Ein normaler Wochentag.";
}
4. Funktionen
Funktionen sind wiederverwendbare Codeblöcke, die eine bestimmte Aufgabe erfüllen. Sie machen deinen Code sauberer und wartbarer.
🔧 Funktionen definieren
<?php
// Einfache Funktion
function begruessung() {
echo "Hallo Welt!";
}
// Funktion aufrufen
begruessung(); // Ausgabe: Hallo Welt!
// Funktion mit Parametern
function personalisierteBegruessung($name) {
echo "Hallo " . $name . "!";
}
personalisierteBegruessung("Max"); // Ausgabe: Hallo Max!
↩️ Rückgabewerte
<?php
// Funktion mit Rückgabewert
function addieren($a, $b) {
return $a + $b;
}
$summe = addieren(5, 3);
echo $summe; // Ausgabe: 8
// Standardwerte für Parameter
function multiplizieren($a, $b = 2) {
return $a * $b;
}
echo multiplizieren(5); // 10 (5 * 2)
echo multiplizieren(5, 3); // 15 (5 * 3)
🎯 PHP 8+ Features
<?php
// Typ-Deklarationen (PHP 7+)
function berechnePreis(float $netto, float $mwst = 0.19): float {
return $netto * (1 + $mwst);
}
// Named Arguments (PHP 8+)
$preis = berechnePreis(netto: 100.0, mwst: 0.19);
5. Arrays
Arrays sind Datenstrukturen, die mehrere Werte in einer Variable speichern können. PHP unterstützt sowohl numerische als auch assoziative Arrays.
📋 Numerische Arrays
<?php
// Array erstellen
$fruechte = ["Apfel", "Banane", "Orange"];
// Oder mit array()
$zahlen = array(1, 2, 3, 4, 5);
// Zugriff auf Elemente
echo $fruechte[0]; // "Apfel"
echo $zahlen[2]; // 3
// Element hinzufügen
$fruechte[] = "Kiwi";
array_push($fruechte, "Mango");
🗂️ Assoziative Arrays
<?php
// Assoziatives Array (Key-Value Paare)
$person = [
"name" => "Max Mustermann",
"alter" => 25,
"stadt" => "Berlin",
"beruf" => "Entwickler"
];
// Zugriff über Keys
echo $person["name"]; // "Max Mustermann"
echo $person["alter"]; // 25
// Neuen Wert hinzufügen
$person["email"] = "max@example.com";
🔄 Array-Funktionen
<?php
$zahlen = [3, 1, 4, 1, 5];
// Array-Länge
echo count($zahlen); // 5
// Sortieren
sort($zahlen);
print_r($zahlen); // [1, 1, 3, 4, 5]
// Element suchen
if (in_array(3, $zahlen)) {
echo "3 ist im Array!";
}
// Array durchlaufen
foreach ($person as $key => $value) {
echo $key . ": " . $value . "\n";
}
6. Superglobals
Superglobals sind vordefinierte Variablen, die in jedem Scope verfügbar sind. Sie enthalten wichtige Informationen über die Anfrage, Server und Session.
🌐 $_GET & $_POST
<?php
// URL: example.com?name=Max&age=25
$name = $_GET["name"]; // "Max"
$age = $_GET["age"]; // "25"
// POST-Daten aus Formularen
$email = $_POST["email"];
$password = $_POST["password"];
🖥️ $_SERVER
<?php
// Server-Informationen
echo $_SERVER["HTTP_HOST"];
echo $_SERVER["REQUEST_URI"];
echo $_SERVER["HTTP_USER_AGENT"];
// IP-Adresse
$ip = $_SERVER["REMOTE_ADDR"];
🔒 Sicherheitshinweis
Validiere und bereinige IMMER Benutzereingaben! Verwende niemals ungeprüfte Daten aus $_GET, $_POST oder anderen Superglobals direkt in deinem Code.
<?php
// Sicher: Eingabe validieren
$name = filter_input(INPUT_GET, "name", FILTER_SANITIZE_STRING);
$age = filter_input(INPUT_GET, "age", FILTER_VALIDATE_INT);
7. Best Practices
✅ Do's
- • Verwende aussagekräftige Variablennamen
- • Kommentiere deinen Code
- • Validiere alle Benutzereingaben
- • Verwende Typ-Deklarationen (PHP 7+)
- • Halte Funktionen klein und fokussiert
- • Verwende PSR-Standards für Code-Style
❌ Don'ts
- • Verwende keine kurzen PHP-Tags (<?)
- • Mische nicht HTML und PHP-Logik
- • Verwende keine globalen Variablen
- • Ignoriere keine Fehlermeldungen
- • Verwende keine veralteten Funktionen
- • Vergiss nicht die Eingabe-Validierung
🚀 Nächste Schritte
- • Lerne Objektorientierte Programmierung
- • Verstehe Composer & Dependency Management
- • Erkunde moderne PHP-Frameworks wie Laravel
- • Lerne Datenbank-Integration mit PDO