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.

78%
aller Websites
Kostenlos
Open Source
25+
Jahre bewährt

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