Syntax Grundlagen

Geschätzte Lektüre: 17 Minuten 475 Ansichten

Grundgerüst eines PHP-Skripts

PHP-Code wird in speziellen Tags eingebettet. Es gibt mehrere Möglichkeiten, PHP-Code zu kennzeichnen:

<?php
    // PHP-Code hier
?>

<!-- Kurzform (nicht empfohlen, da nicht immer unterstützt) -->
<?
    // PHP-Code hier
?>

<!-- HTML-Skript-Stil (veraltet) -->
<script language="php">
    // PHP-Code hier
</script>

Empfohlen wird die Verwendung von <?php … ?>, da diese Form garantiert funktioniert und am weitesten verbreitet ist.

Beispiel: Einfache Ausgabe:

<?php
    echo "Hallo Welt!";
?>

Kommentare in PHP

Kommentare sind wichtig, um Code zu dokumentieren. PHP unterstützt mehrere Kommentarstile:

<?php
    // Einzeiliger Kommentar (C++ Stil)
    # Einzeiliger Kommentar (Shell Stil)
    
    /*
        Mehrzeiliger Kommentar
        der über mehrere Zeilen
        gehen kann
    */
    
    /**
     * DocBlock-Kommentar (für Dokumentation)
     * @param string $name Beschreibung
     * @return void
     */
?>

Variablen und Datentypen

Variablen in PHP beginnen mit einem Dollarzeichen $. PHP ist eine dynamisch typisierte Sprache, d.h. Variablen müssen nicht vor der Verwendung deklariert werden.

Grundlegende Datentypen:

<?php
    // String (Zeichenkette)
    $text = "Hallo PHP";
    
    // Integer (Ganzzahl)
    $zahl = 42;
    
    // Float (Fließkommazahl)
    $preis = 19.99;
    
    // Boolean (Wahrheitswert)
    $wahr = true;
    $falsch = false;
    
    // Array (Liste von Werten)
    $farben = array("rot", "grün", "blau");
    // oder ab PHP 5.4:
    $farben = ["rot", "grün", "blau"];
    
    // NULL (kein Wert)
    $nichts = null;
?>

Variableninterpolation in Strings:

<?php
    $name = "Anna";
    echo "Hallo, $name!";  // Ausgabe: Hallo, Anna!
    echo 'Hallo, $name!';  // Ausgabe: Hallo, $name! (keine Interpolation)
?>

Operatoren

<?php
    //--- Arithmetische Operatoren:
    $a = 10;
    $b = 3;
    
    echo $a + $b;  // 13 (Addition)
    echo $a - $b;  // 7 (Subtraktion)
    echo $a * $b;  // 30 (Multiplikation)
    echo $a / $b;  // 3.333... (Division)
    echo $a % $b;  // 1 (Modulo - Rest der Division)
    echo $a ** $b; // 1000 (Potenz)
?>

<?php
    //--- Vergleichsoperatoren:
    $x = 5;
    $y = "5";
    
    var_dump($x == $y);   // true (gleicher Wert)
    var_dump($x === $y);  // false (nicht gleicher Typ)
    var_dump($x != $y);   // false 
    var_dump($x !== $y);  // true
    var_dump($x < $y);    // false
    var_dump($x > $y);    // false
    var_dump($x <= $y);   // true
    var_dump($x >= $y);   // true
?>

<?php
    //---- Logische Operatoren::
    $a = true;
    $b = false;
    
    var_dump($a && $b);  // false (UND)
    var_dump($a || $b);  // true (ODER)
    var_dump(!$a);       // false (NICHT)
    var_dump($a and $b); // false (UND mit niedrigerer Priorität)
    var_dump($a or $b);  // true (ODER mit niedrigerer Priorität)
    var_dump($a xor $b); // true (exklusives ODER - true wenn genau einer true ist)
?>

Kontrollstrukturen

Bedingungen (if/else/elseif):

<?php
    $alter = 18;
    
    if ($alter < 18) {
        echo "Du bist minderjährig.";
    } elseif ($alter == 18) {
        echo "Gerade volljährig geworden!";
    } else {
        echo "Du bist volljährig.";
    }
    
    // Kurzform (ternärer Operator)
    $status = ($alter >= 18) ? "volljährig" : "minderjährig";
    echo $status;
?>

Switch-Anweisung:

<?php
    $wochentag = "Montag";
    
    switch ($wochentag) {
        case "Montag":
            echo "Wochenstart!";
            break;
        case "Dienstag":
        case "Mittwoch":
        case "Donnerstag":
            echo "Woche läuft...";
            break;
        case "Freitag":
            echo "Fast Wochenende!";
            break;
        default:
            echo "Wochenende!";
    }
?>

Schleifen:

for-Schleife:

<?php
    for ($i = 0; $i < 5; $i++) {
        echo "Durchlauf $i<br>";
    }
?>

while-Schleife:

<?php
    $i = 0;
    while ($i < 5) {
        echo "Durchlauf $i<br>";
        $i++;
    }
?>

do-while-Schleife:

<?php
    $i = 0;
    do {
        echo "Durchlauf $i<br>";
        $i++;
    } while ($i < 5);
?>

foreach-Schleife (für Arrays):

<?php
    $farben = ["rot", "grün", "blau"];
    
    foreach ($farben as $farbe) {
        echo "$farbe<br>";
    }
    
    // Mit Schlüssel-Wert-Paaren
    $person = ["name" => "Max", "alter" => 30];
    foreach ($person as $key => $value) {
        echo "$key: $value<br>";
    }
?>

Funktionen

Funktionen erlauben die Wiederverwendung von Code:

<?php
    // Einfache Funktion
    function sagHallo() {
        echo "Hallo!";
    }
    sagHallo(); // Aufruf
    
    // Funktion mit Parametern
    function addiere($a, $b) {
        return $a + $b;
    }
    $summe = addiere(5, 3); // 8
    
    // Standardwerte für Parameter
    function multipliziere($a, $b = 2) {
        return $a * $b;
    }
    echo multipliziere(4);   // 8
    echo multipliziere(4, 3); // 12
    
    // Typdeklaration (ab PHP 7)
    function dividiere(float $a, float $b): float {
        return $a / $b;
    }
?>

Arrays

Arrays sind zentrale Datenstrukturen in PHP:

<?php
    // Indexiertes Array
    $zahlen = [1, 2, 3, 4, 5];
    echo $zahlen[0]; // 1
    
    // Assoziatives Array
    $person = [
        "name" => "Max",
        "alter" => 30,
        "beruf" => "Entwickler"
    ];
    echo $person["name"]; // Max
    
    // Mehrdimensionales Array
    $tiere = [
        "säugetiere" => ["Hund", "Katze", "Maus"],
        "vögel" => ["Adler", "Spatz", "Taube"]
    ];
    echo $tiere["vögel"][1]; // Spatz
    
    // Array-Funktionen
    $anzahl = count($zahlen); // 5
    array_push($zahlen, 6);   // Fügt 6 hinzu
    $letztes = array_pop($zahlen); // Entfernt und gibt 6 zurück
?>

Ein- und Ausgabe

Ausgabe mit echo und print:

<?php
    echo "Hallo", " ", "Welt!"; // Mehrere Parameter
    print "Hallo Welt!";       // Nur ein Parameter, gibt immer 1 zurück
    
    // printf für formatierte Ausgabe
    printf("Es ist %u Uhr und %s schmeckt gut.", 12, "Pizza");
?>

Eingabe (vom Benutzer):

In Webanwendungen kommt die Eingabe typischerweise von Formularen:

<form method="POST" action="verarbeite.php">
    <input type="text" name="benutzername">
    <input type="submit" value="Senden">
</form>

In verarbeite.php:

<?php
    $benutzername = $_POST['benutzername'];
    echo "Hallo, $benutzername!";
?>

Einbindung von Dateien

PHP erlaubt das Einbinden anderer PHP-Dateien:

<?php
    include 'header.php';      // Versucht einzubinden, setzt bei Fehler fort
    require 'config.php';      // Muss eingebunden werden, sonst Fehler
    
    include_once 'funktionen.php'; // Wird nur einmal eingebunden
    require_once 'datenbank.php';  // Dasselbe mit erforderlicher Einbindung
?>

Grundlegende Fehlerbehandlung

<?php
    // Einfache Fehlerbehandlung
    if (!file_exists("datei.txt")) {
        die("Datei nicht gefunden!"); // Beendet das Skript
    } else {
        $inhalt = file_get_contents("datei.txt");
    }
    
    // Try-Catch für Exceptions
    try {
        $ergebnis = 10 / 0;
    } catch (DivisionByZeroError $e) {
        echo "Fehler: " . $e->getMessage();
    }
?>

Grundlagen der Objektorientierung (OOP)

<?php
    // Einfache Klasse
    class Auto {
        // Eigenschaften
        public $marke;
        public $farbe;
        
        // Konstruktor
        public function __construct($marke, $farbe) {
            $this->marke = $marke;
            $this->farbe = $farbe;
        }
        
        // Methode
        public function beschreibung() {
            return "Ein $this->farbe Auto von $this->marke";
        }
    }
    
    // Objekt erstellen
    $meinAuto = new Auto("VW", "blau");
    echo $meinAuto->beschreibung();
?>

Best Practices für saubere PHP-Syntax

Konsistente Einrückung: Verwenden Sie entweder Tabs oder Leerzeichen (4 Leerzeichen sind üblich).
Klammern-Stil: Wählen Sie einen Stil und bleiben Sie dabei

// K&R Stil (empfohlen)
if ($bedingung) {
    // Code
}

// Allman Stil
if ($bedingung)
{
    // Code
}

Namenskonventionen:
–> Variablen: $klein_mit_unterstrich oder $camelCase
–> Konstanten: GROSSBUCHSTABEN
–> Klassen: PascalCase
–> Funktionen/Methoden: camelCase() oder klein_mit_unterstrich()

Dateiendung: .php für alle PHP-Dateien
Zeichenkodierung: UTF-8 ohne BOM verwenden

Beispiel: PHP-Skript

<?php
/*
 * Beispielskript: Benutzerverwaltung
 * Autor: Max Mustermann
 * Datum: 2023-05-15
 */

// Konfiguration
define('MAX_ALTER', 120);

// Funktionen
function ist_gueltiges_alter($alter) {
    return is_numeric($alter) && $alter > 0 && $alter <= MAX_ALTER;
}

// Hauptlogik
$benutzer = [
    ["name" => "Anna", "alter" => 25],
    ["name" => "Bernd", "alter" => 32]
];

// Neue Benutzer hinzufügen
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    $alter = (int)($_POST['alter'] ?? 0);
    
    if (!empty($name) && ist_gueltiges_alter($alter)) {
        $benutzer[] = ["name" => $name, "alter" => $alter];
        $meldung = "Benutzer $name hinzugefügt!";
    } else {
        $fehler = "Ungültige Eingabe!";
    }
}

// Ausgabe
?>
<!DOCTYPE html>
<html>
<head>
    <title>Benutzerverwaltung</title>
</head>
<body>
    <h1>Benutzerliste</h1>
    
    <?php if (isset($meldung)): ?>
        <p style="color: green;"><?= htmlspecialchars($meldung) ?></p>
    <?php endif; ?>
    
    <?php if (isset($fehler)): ?>
        <p style="color: red;"><?= htmlspecialchars($fehler) ?></p>
    <?php endif; ?>
    
    <ul>
        <?php foreach ($benutzer as $user): ?>
            <li><?= htmlspecialchars($user['name']) ?> (<?= $user['alter'] ?> Jahre)</li>
        <?php endforeach; ?>
    </ul>
    
    <h2>Neuen Benutzer anlegen</h2>
    <form method="post">
        <label>Name: <input type="text" name="name" required></label><br>
        <label>Alter: <input type="number" name="alter" min="1" max="<?= MAX_ALTER ?>" required></label><br>
        <button type="submit">Speichern</button>
    </form>
</body>
</html>

Das Fundament

Diese Grundlagen der PHP-Syntax bilden das Fundament für die PHP-Entwicklung. Mit diesem Wissen können Sie bereits einfache Skripte erstellen. Die nächsten Schritte wären:

  1. Vertiefung der OOP-Konzepte in PHP
  2. Arbeiten mit Formularen und Benutzereingaben
  3. Datenbankzugriffe mit MySQLi oder PDO
  4. Sicherheitsaspekte (SQL-Injection, XSS, CSRF)
  5. Arbeiten mit Sessions und Cookies

PHP ist ausgesprochen eine wichtige Sprache mit einer flachen Lernkurve für Anfänger, aber viel Tiefe für fortgeschrittene Entwickler. Die offizielle PHP-Dokumentation (php.net) ist eine hervorragende Ressource für weiterführende Informationen.

Dieses Dokument teilen

Syntax Grundlagen

Oder Link kopieren

INHALT

Abonnieren

×
Cancel