Kurz: var_dump(5 <=> 3, “a” <=> “b”, [1, 2] <=> [1, 3]); // Spaceship: -1, 0, 1 var_dump(true && false, true || false, !true, true xor true); var_dump(5 & 3, 5 | 3, 5 ^ 3, ~5, 1 << 4, 256 >> 2);
Teil des Kurses PHP
Operatoren
<?php
echo 7 + 2, " ", 7 - 2, " ", 7 * 2, " ", 7 / 2, " ", 7 % 3, " ", 2 ** 8, " ", intdiv(7, 2), "\n";
$x = 10; $x += 5; $x -= 3; $x *= 2; $x /= 4; $x .= "!";
echo $x, "\n";
$i = 5; echo $i++, " ", ++$i, " ", $i--, " ", --$i, "\n";
var_dump(5 <=> 3, "a" <=> "b", [1, 2] <=> [1, 3]); // Spaceship: -1, 0, 1
var_dump(true && false, true || false, !true, true xor true);
var_dump(5 & 3, 5 | 3, 5 ^ 3, ~5, 1 << 4, 256 >> 2);
echo true ? "ja" : "nein", "\n"; // ternär
echo null ?: "Elvis", "\n"; // kurze Form: erster truthy Wert
echo null ?? "Coalesce", "\n";Ausgabe:
9 5 14 3.5 1 256 3
6!
5 7 7 5
int(1)
int(-1)
int(-1)
bool(false)
bool(true)
bool(false)
bool(false)
int(1)
int(7)
int(6)
int(-6)
int(16)
int(64)
ja
Elvis
Coalesce| Operator | Bedeutung |
|---|---|
+ - * / % ** | Rechnen (% Rest, ** Potenz) |
. | Strings verketten |
== != === !== | Gleichheit (strikt: ===) |
< <= > >= <=> | Vergleich, Spaceship |
&& || ! (and or xor) | Logik |
?? ?: ? : | Null-Coalescing, Elvis, ternär |
instanceof | Typprüfung bei Objekten |
Strings
<?php
$name = "Mia";
$alter = 17;
echo "Name: $name, Alter: {$alter}\n"; // Interpolation
echo 'Roh: $name\n', "\n"; // einfache Quotes: nichts ersetzt
echo "Tab:\tZeilenumbruch:\\nAnführung: \"x\" Unicode: \u{1F600}\n";
echo "Summe: " . ($alter + 1) . "\n"; // Verketten mit .
$mehrzeilig = <<<TEXT
Hallo $name,
du bist $alter Jahre alt.
Einrückung bleibt relativ.
TEXT;
echo $mehrzeilig, "\n";
echo <<<'ROH'
Nowdoc: $name wird nicht ersetzt
ROH;
echo "\n";Ausgabe:
Name: Mia, Alter: 17
Roh: $name\n
Tab: Zeilenumbruch:\nAnführung: "x" Unicode: 😀
Summe: 18
Hallo Mia,
du bist 17 Jahre alt.
Einrückung bleibt relativ.
Nowdoc: $name wird nicht ersetztWichtige String-Funktionen
<?php
$s = " Hallo Welt ";
echo strlen($s), "|", trim($s), "|", ltrim($s), "|", rtrim($s), "|\n";
echo strtoupper("abc"), strtolower("ABC"), ucfirst("mia"), ucwords("max muster"), "\n";
echo str_replace("Welt", "PHP", "Hallo Welt"), " ", substr("Datenbank", 0, 5), " ", substr("Datenbank", -4), "\n";
var_dump(strpos("Hallo", "l"), strrpos("Hallo", "l"), strpos("Hallo", "x"), str_contains("Hallo", "all"), str_starts_with("Hallo", "Ha"), str_ends_with("Hallo", "lo"));
echo str_repeat("=", 10), " ", strrev("abc"), " ", str_pad("7", 3, "0", STR_PAD_LEFT), " ", wordwrap("Ein langer Satz hier", 10, "\n", true), "\n";
print_r(explode(",", "a,b,c"));
echo implode(" | ", ["x", "y", "z"]), "\n";
echo number_format(1234567.891, 2, ",", "."), " ", nl2br("a\nb"), " ", htmlspecialchars("<b>\"x\"</b>"), "\n";
print_r(str_split("abcdef", 2));
echo similar_text("Hallo", "Hello"), " ", levenshtein("kitten", "sitting"), " ", ucfirst(strrev("dlrow")), "\n";Ausgabe:
14|Hallo Welt|Hallo Welt | Hallo Welt|
ABCabcMiaMax Muster
Hallo PHP Daten bank
int(2)
int(3)
bool(false)
bool(true)
bool(true)
bool(true)
========== cba 007 Ein langer
Satz hier
Array
(
[0] => a
[1] => b
[2] => c
)
x | y | z
1.234.567,89 a<br />
b <b>"x"</b>
Array
(
[0] => ab
[1] => cd
[2] => ef
)
4 3 WorldUnicode und Multibyte
strlen zählt Bytes. Für UTF-8-Text nutze die mb_-Funktionen:
<?php
$text = "Grüße";
echo strlen($text), " ", mb_strlen($text), " ", mb_strtoupper($text), " ", mb_substr($text, 0, 3), " ", mb_str_pad("ä", 3, "-") ?? '', "\n";Ausgabe:
7 5 GRÜSSE Grü ä--Hinweis
mb_str_padgibt es erst ab PHP 8.3; auf älteren Versionen nutzt dustr_padmit Vorsicht bei Umlauten.
Formatieren mit sprintf
| Platzhalter | Bedeutung |
|---|---|
%s %d %f | Text, Ganzzahl, Kommazahl |
%05d | auf 5 Stellen mit Nullen füllen |
%.2f | zwei Nachkommastellen |
%10s / %-10s | rechts- / linksbündig |
%b %x %X %o | binär, hex, oktal |
%1$s %2$s %1$s | nummerierte Argumente |
<?php
printf("%s ist %d Jahre alt (%.1f m)\n", "Mia", 17, 1.68);
printf("[%5d] [%-5d] [%05d] [%x] [%b]\n", 42, 42, 42, 255, 5);
printf("%2\$s %1\$s %2\$s\n", "a", "b");
echo date("Y-m-d", 0), " ", date("D, d M Y", 86400 * 365), "\n";Ausgabe:
Mia ist 17 Jahre alt (1.7 m)
[ 42] [42 ] [00042] [ff] [101]
b a b
1970-01-01 Fri, 01 Jan 1971Merke
.verkettet Strings,{$var}interpoliert, Heredoc für mehrzeiligen Text<=>,??,?:sind praktische Operatoren- Wichtige Funktionen:
strlen,substr,str_replace,strpos,explode,implode,trim str_contains,str_starts_with,str_ends_withseit PHP 8- Für UTF-8:
mb_strlen,mb_substr,mb_strtoupper printf/sprintffür Formatierung
Übungsaufgabe
Zerlege den Satz “PHP macht Spaß” in Wörter, gib jedes Wort mit Länge aus und füge sie in Großbuchstaben wieder zusammen.
Quiz zur Selbstkontrolle
Wie verkettet man Strings in PHP?
- Mit dem Punkt . (richtig)
- Mit +
- Mit &
- Mit ,
Welche Funktion zählt Zeichen (nicht Bytes) in UTF-8?
- mb_strlen (richtig)
- strlen
- count
- length
Was liefert strpos bei keinem Treffer?
- false (richtig)
- -1
- 0
- null
Weiter im Kurs
Zurück: Variablen und Datentypen
Weiter: Kontrollfluss: if, match, Schleifen
Alle Kapitel: PHP im Überblick