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 ersetzt
Wichtige 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ü ä--
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 1971
Merke
.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
Aufgabe
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.