Typen und Umwandlung Typ Beispiel Prüfen / Umwandeln int42is_int, (int), intvalfloat3.14is_float, (float)string"Text"is_string, (string)booltrue(bool); falsy: 0 "" "0" [] nullarray[1, 2], ["a" => 1]is_array, (array)nullnullis_null, isset, ??objectnew Xinstanceof, is_object
Arrays: Auswahl Aufgabe Funktion Größe countAnhängen/Entfernen [] =, array_push, array_pop, array_shift, array_unshiftSuchen in_array, array_search, array_key_exists, issetSortieren sort rsort asort arsort ksort krsort usort uasort uksortUmformen array_map, array_filter, array_reduce, array_columnKombinieren array_merge, +, array_combine, array_slice, array_spliceSchlüssel/Werte array_keys, array_values, array_flip, array_unique, array_reverseMathe array_sum, array_product, min, max, range
Strings: Auswahl Aufgabe Funktion Länge strlen, mb_strlenTeilstring substr, mb_substr, strstrSuchen strpos, str_contains, str_starts_with, str_ends_withErsetzen str_replace, preg_replace, strtrTrennen/Verbinden explode, implode, str_splitFormat sprintf, number_format, str_pad, ucfirst, trimRegex preg_match, preg_match_all, preg_split, preg_replace_callback
Kontrollstrukturen text Kopieren if () {} elseif () {} else {} match ($x) { 1 => "a", default => "b" }
for ($i = 0; $i < 10; $i++) {} foreach ($arr as $k => $v) {}
while () {} do {} while (); break; continue; return;
try {} catch (A | B $e) {} finally {}
$a ?? $b $a ??= $b $a?->b $a ?: $b $x ? $y : $zKlassen-Spickzettel text Kopieren final class A extends B implements I, J {
use T;
public const X = 1;
public function __construct(private readonly int $x = 0) {}
public static function neu(): static {}
abstract protected function f(): void;
}
enum S: string { case A = 'a'; }
interface I { public function f(): int; }
trait T { public function g() {} }Nützliche Superglobals und Konstanten $_GET $_POST $_SERVER $_COOKIE $_SESSION $_FILES $_ENV, __FILE__ __DIR__ __LINE__ __FUNCTION__ __CLASS__, PHP_EOL PHP_INT_MAX PHP_VERSION M_PI.
php.ini und Betrieb Einstellung Produktion display_errorsOfflog_errorsOnerror_reportingE_ALLopcache.enable1memory_limit, max_execution_timeangepasst session.cookie_httponly, session.cookie_secure1
Häufige Fehler Fehler Ursache / Lösung "Headers already sent" Ausgabe vor header() oder session_start(); auch Leerzeichen vor <?php 0 == "a"== wandelt um, nutze ===Array wird nicht verändert foreach mit Kopie; nutze &$x oder SchlüsselUndefined array keyisset, ?? verwendenUmlaute zerhackt mb_*-Funktionen und UTF-8XSS durch Ausgabe htmlspecialcharsSQL-Injection Prepared Statements
Weiterlernen Offizielle Dokumentation php.net/manual/de und "PHP: The Right Way" (phptherightway.com) Laravel- oder Symfony-Tutorials für größere Anwendungen PHPUnit, PHPStan, Composer im eigenen Projekt einsetzen Merke ===, strikte Typen und htmlspecialchars sind deine wichtigsten GewohnheitenDatenbank immer über Prepared Statements, Passwörter mit password_hash Composer + PSR-4 gliedern Projekte, Tests und statische Analyse sichern Qualität