Bezeichner |
.small-font.inline-code[```ebnf
identifier = [a-zA-Z_][a-zA-Z_0-9]*
```]
- .darkblue[.bold[Variablen]namen beginnen] immer .darkblue[.bold[mit] .monospace[$]]
- .darkblue[.bold[Konstanten- und Funktion]snamen .bold[ohne] .monospace[$]]
- .darkblue[Groß-/Kleinschreibung]
- bei Variablennamen (& Konstanten via const) unterschieden
- bei Funktionsnamen (& Konstanten via define) nicht unterschieden
|
Anweisungen |
.small-font.inline-code[```html
```] $\equiv$ .small-font.inline-code[```html
```]
- .darkblue[Ende einer Anweisung bei .bold[Semikolon] oder .bold[schließendes Tag] .monospace.hljs-meta[?>]]
|
Bedingte Anweisung |
.small-font.inline-code[```php
if($a < $b) { $min = $a; } else { $min = $b; }```]
- Bei einzelnen Anweisungen sind die .monospace[{}]-Klammern optional
|
while-Schleife |
.small-font.inline-code[```php
$i=0; while($i<$width) { echo '*'; $i++; }```]
|
for-Schleife |
.small-font.inline-code[```php
for($i=0; $i<$width; $i++) { echo '*'; }```]
|
return-Anweisung |
.small-font.inline-code[```php
return $n*42; return '+';```]
|
Parameterübergabe |
- standardmäßig mittels .darkblue.bold[call-by-value]
- .darkblue[optional: .bold[call-by-reference]]
- Übernahme der Änderungen des Wertes der Parametervariablen innerhalb der Funktion zu der Variablen des Funktionsaufrufes
- Kennzeichnung in der Funktionsdefinition durch Notation von „&“
|
Kommentare |
- .darkblue[Mehrzeilig]: .small-font.inline-code[```php
/* Kommentar … */```]
|
- .darkblue[Einzeilig]: .monospace.hljs-comment[// Kommentar]
|
|
]
---
Bedeutung |
.darkblue[Abbildung von Indizes auf Werte] |
Einträge |
Paare $(k, v)$ mit $k$ ganzzahl. .darkgray[(evtl. von anderen primitiven Typen konvertiert)] oder String-Schlüssel und zugeordneter Wert $v$ |
Erzeugung von Arrays |
Liste von Werten |
.inline-code[```php
// indiziert von 0 an:```] .inline-code[```php
$monthName = array("", "Jan", "Feb", "Mar");```]
|
Liste von Index-Wert-Paaren |
.inline-code[```php
$monthName = array(1 => "Jan", 2 => "Feb", 3 => "Mar");```]
|
Explizite Indizierung |
.inline-code[```php
$monthName[1]= "Jan"; $monthName[2]= "Feb"; …```]
|
Assoziatives Array |
.inline-code[```php
$monthName = array("Jan" => 1, "Feb" => 2, "Mar" => 3);```]
|
Zugriff |
Aufzählung aller Elemente |
.inline-code[```php
foreach($monthName as $k => $v){ echo $k." => ".$v." "; }
```]
|
]
---
# .darkblue[Spezielle Werte]
.small-font[
Funktion |
Beschreibung |
.small-font.small-margin-top.margin-bottom[```php
int preg_match(string $pattern,
string $string [,array &$matches
[, int $flags = PREG_PATTERN_ORDER
[, int $offset = 0 ]]])
```] |
Durchsucht .monospace[$string] nach der ersten Übereinstimmung mit dem durch .monospace[$pattern]
definierten regulären Ausdruck, gibt .monospace.hljs-number[1] bei mind. einer Übereinstimmung zurück, ansonsten .monospace.hljs-number[0]
|
.small-font.small-margin-top.margin-bottom[```php
int preg_match_all(…)
```] |
Sucht nach allen Übereinstimmungen (& legt sie in .monospace[$matches] ab)
|
.small-font.small-margin-top.margin-bottom[```php
mixed preg_replace(…)
```] |
Suchen & Ersetzen von Übereinstimmungen
|
.small-font.small-margin-top.margin-bottom[```php
mixed preg_replace_callback(…)
```] |
Suchen & Ersetzen von Übereinstimmungen, wobei der Return-Wert einer Callback-Funktion den Ersetzungstext bestimmt
|
]
---
# .darkblue[Aufbau eines regulären Ausdruckes $R$]
.condensed.small-font[
.floatleft.padding-right[$F$, $G$ reguläre Ausdrücke]
.floatright.padding-left[$n$, $m$ ganze Zahlen]
.floatleft.padding-right[$L(F)$ definierte Sprache des regulären Ausdruckes $F$]
.floatright.padding-left[$a$, $b$, $c$, $A$, $Z$ Zeichen]
]]
]
---
# .darkblue[Bemerkungen zu regulären Ausdrücken]
- .darkblue[Escape]-Zeichen: \
- .darkblue[Standardeinstellung] für die Match-Bildung: .darkblue[„gierig“] (greedy)
- .darkblue[Suche nach dem längsten Match]
- Umschaltung in den „nicht gierig“-Modus: