Kategorie:PHP

Aus MILLENNIUM ARTS ISP - Hilfe | FAQ
Zur Navigation springen Zur Suche springen


Informationen folgen in Kürze - es findet aktuelle eine Datenübernahme statt.

Funktionen

PHP mail() mit Umlauten

Nicht-kodierte Umlaute in E-Mails sind grundsätzlich nicht erlaubt und entsprechen nicht dem RFC. E-Mails können deswegen von Empfängern (insbes. GMX, Gmail & Co, die sehr streng sind) abgelehnt werden. Auf php.net gibt es dazu sowohl Hinweise auf den RFC, als auch weiter unten ein Beispiel zur korrekten Kodierung von deutschen Umlauten mit der PHP mail() Funktion.

Kompatibilität

`??` vs. `isset()` ab PHP 7.4.22 / PHP 8

In PHP-Webentwicklung ist es wichtig, sicher mit Variablen umzugehen, die möglicherweise nicht existieren oder leer sind, z. B. bei Formulareingaben oder Konfigurationsdaten. Der Null-Coalescing-Operator (`??`) und die Funktion `isset()` helfen dabei, Standardwerte zu setzen und Fehler zu vermeiden. `??` ist eine moderne, kurze Schreibweise, während `isset()` in älteren PHP-Versionen häufiger war. Ab PHP 7.4.22 und besonders in PHP 8 können Unterschiede zwischen diesen Ansätzen Kompatibilitätsprobleme verursachen, da `??` direkt einen Wert liefert, wenn eine Variable nicht gesetzt oder `null` ist, während `isset()` prüft, ob eine Variable existiert und nicht `null` ist. Dies betrifft vor allem Anwendungen, die zwischen PHP-Versionen (z. B. 7.4 und 8) wechseln, und erfordert eine Anpassung, um robusten Code zu gewährleisten.

Beispiel:

define('USE_ISSET', 0); // 0 für ?? (PHP 8+), 1 für isset() (PHP 7.4)

function getConfig($value, $default = '') {
    if (USE_ISSET) {
        return isset($value) ? $value : $default; // Älteres Verhalten
    }
    return $value ?? $default; // Modernes Verhalten
}

// Beispielaufruf
$shop = ['theme' => 'dark'];
$theme = getConfig($shop['theme'], 'light');
echo $theme; // Ausgabe: dark

// Problemfall: Nicht gesetzte Variable
$currency = getConfig($shop['currency'], 'EUR');
echo $currency; // ?? gibt 'EUR', isset() könnte Fehler auslösen

Diese Kategorie enthält zurzeit keine Seiten oder Medien.