- Offizieller Beitrag
PHP kurz und bündig
Grundlagen um PHP anwenden zu können mit wenig Worten erklärt. Hierdurch lernt man kein PHP sondern soll an Befehle/Funktionen erinnern.
Bei der Syntax habe ich mich nicht ganz an den Standard gehalten, da ich zum Syntax und Beispiel oft inneinander integriert habe. Ziel ist von mir, mit möglichst wenig Text den PHP-Code zu beschreiben. Dabei ist nicht die Vollständigkeit im Vordergrund, sondern die Kürze. Dennoch gibt eine Regel:
[] = Optionaler Wert, Parameter
BSP = Beispiel
int = Integer (ganzzahliger Wert)
str oder string = String (Text)
Gute Hilfe bietet das PHP-Handbuch (http://php.net/manual/de)
=> Sprachreferenz http://php.net/manual/de/langref.php
=> Funktionsreferenz http://php.net/manual/de/funcref.php
=> String-Funktionen http://php.net/manual/de/ref.strings.php
=> Klassen, Objekte http://php.net/manual/de/language.oop5.php
Grundlegendes
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] PHP Code |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
<?php ?> |
PHP-Tag um PHP-Code in einer HTML-Datei zu identifizieren |
<?php
[Blockierte Grafik: https://e2h.de/forum/images/Leer10png]echo 'PHP-Code<br>'; ?> [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]HTML-Code<br> <?php ?> |
Auf diese Weise kann PHP und HTML-Code gemischt verwendet werden |
HTML mit einem <?php echo "PHP-Teil";?> integriert | PHP lässt sich auch direkt in eine HTML-Code-Zeile integrieren |
/* */ |
Kommentarbereich (Mehrzeilig) |
// | Kommentar ab hier für eine Zeile |
; | Abschluss von PHP-Anweisungen am Ende einer Code-Zeile |
phpinfo(); | Zeigt die PHP-Info an, diese beinhaltet Einstellungen und Infos zu PHP |
echo "$a <br>";
echo '$a <br>'; echo $a . '<br>'; |
" = interpretiert PHP den Inhalt zwischen den "" => $a wird der Wert ausgegeben
' = gibt nur den Inhalt zwischen ' und ' aus => $a wird als $a ausgegeben => HTML-Code wird in beiden Fällen interpretiert (<br> führt zu einem Zeilenwechsel) => ich bevorzuge ' da man dann selbst entscheiden kann wann z.B. eine Variable als Wert oder als Text ausgegeben werden soll. Mit der dritten Variante wird die Variable und anschließend der Text ausgegeben, der Punkt dient als Concatenate-Zeichen (Verbinder) |
// komplizierter Code if ($fehler) { [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]goto Fehlerbehandlung; } Fehlerbehandlung: if ($fehler) { [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]// aufräumen [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]// Ressourcen freigeben [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]echo 'Fehler aufgetreten'; } |
Ab PHP 5.3 wurde der Befehl goto eingefügt. Dies ist sehr umstritten kann aber im Bereich der Fehlerbehandlung wertvolle Dienste leisten. Es ginge zwar auch anders aber schneller gehts mit goto goto springt direkt zur angegebenen Marke und führt das Programm an dieser Stelle fort |
require_once $Dateiname; | Bindet eine externe Datei ein und führt diese aus
Im Fehlerfall wird ein Error (E_COMPILE_ERROR) erzeugt |
Variablen
In PHP müssen Variablen nicht deklariert werden. Ihr Datentyp ergibt sich aus der Art Ihres Inhaltes. Die Namen sollten selbstsprechend sein, so dass keine Erläuterung notwenig wird.
Variablen müssen immer mit einem $ beginnen und dürfen keine Leerzeichen, Umlaute oder Sonderzeichen enthalten.
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] PHP Code |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
require_once("./DATEINAME.XXX"); | Bindet eine PHP-Datei ein wenn diese noch nicht eingebunden wurde |
dirname(__FILE__) | Verzeichnisname der aktuellen Datei |
if (!defined("VARI")) define("VARI", "INHALT"); | definiert eine globale Konstante, wenn sie noch nicht definiert wurde define({Name case sensitiv}, {Inhalt}) übernimmt dabei die Definition define({Name}, {Inhalt}, FALSE) = Groß-/Kleinschreibung wird ignorriert |
$a = 'INHALT'; | Variable einen Inhalt zuweisen |
echo $a . '<br>'; | Variableninhalt ausgeben und am Ende einen Zeilenwechsel durchführen |
print $a; | Variableninhalt ausgeben [Operator] liefert eine Rückgabe 1 = ok, 2 = nio |
$a = 'INHALT'; $b = 123; echo gettype( $a ); |
PHP kennt keine Datentypen die angegeben werden müssen. Mit gettype() kann jedoch der interne Datentyp ausgegeben werden $a wird ein STRING und $b ein INTEGER zugewiesen |
define( 'VARI', 'Inhalt' ); echo VARI; |
Konstante wird definiert und ausgegeben |
isset( $a ); | Variable auf Vorhandensein prüfen => 1 = TRUE => 0 = FALSE, Variable wurde nicht definiert |
empty( $a ); | Variable auf Inhalt prüfen => 1 = TRUE, Inhalt vorhanden => 0 = FALSE, leer |
echo isset( $a ); print_r( isset( $a ) ); var_dump( isset( $a ) ); |
Ergebnis der Funktion isset() ausgeben => 1, 0 wird nicht ausgegeben Zusätzlich wird auch 0 ausgegeben => 1 oder 0 Zusätzliche Infos ausgeben => bool(true) oder bool(false) |
$a = array( "Elemente" ); echo $a[0]; |
Der Variable $a wird die Elemente als Liste zugewiessen, dabei kann jeder Inhalt (Trennzeichen Komma) ein anderer Datentyp sein Variable[Index] kann ein Wert eines Array angesprochen werden Gute Übersicht http://php.net/manual/de/ref.array.php |
$a = array( $Index => "Wert", ... ); | Der Variable $a wird ein Array mit einem assoziativen Index zugewiesen BSP: $a = array('Rot' => '#FF0000', 'Grün' => '#00FF00', 'Blau' => '#0000FF') |
$a = array( $Index => array( "Elemente" ), ) echo $a[0][0]; |
Arrays erstellt man, indem als Wert das Schlüsselwort array() verwendet wird BSP: $a = array('Rottöne' => array('#FF0000', '#FF6464', '#FFC8C8')) |
foreach ( $Array as $Variable ) {} print_r( $Array ); var_dump( $Array ); |
Möglichkeiten wie ein Array ausgegeben werden kann BSP: $a = array('Rot' => '#FF0000', 'Grün' => '#00FF00', 'Blau' => '#0000FF'); foreach ( $a as $idx => $wert ) { [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $idx . ': ' . $wert . '<br>'; } |
$a[ $Index]] = "Inhalt"; | Einem Index eines Arrays einen Inhalt zuweisen, ist der Index nicht vorhanden wird er angelegt |
unset($a[$Index]); | Löscht ein Element aus der Liste eines Arrays |
array_pop( $Array ) | Entfernt das letzte Element eines Arrays |
array_push( $Array, "Elemente"); | Fügt ein oder mehr Elemente an das Ende eines Arrays an |
array_key_exists( $Indexwert, $Array ); | Prüft ob ein Index im Array vorhanden ist => bool(true) oder bool(false) |
$b = array_flip($a); | Tausch den Index mit dem Wert eines Arrays, Text wird nur bis Leerzeichen übertragen, Zahlen und Bool garnicht $a[0]='Text' => $b[Text]=0 |
sort($a); | Sortiert ein Array |
Fallunterschaltungen (Details siehe unten)
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] PHP Code |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
if ( "Bedingung" ) { } elseif ( "Bedingung" ) { } else { } |
Wenn "Bedingung" (ZB $a=$b) erfüllt wird, dann wird der PHP-Code zwischen dem folgenden { und } ausgeführt |
if ( [Bedingung] ) [Aktion]; | Kurzform, wenn nur auf einen Wert abgeprüft werden soll |
switch ( $Variable ) { [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]case "Bedingung": [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png][Aktion]; [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break; [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]default: [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png][Aktion]; [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break; } |
Über switch-case können wie bei if-else auch Fallunterscheidungen geroffen werden Der Vorteil liegt in der schnelleren Ausführung und Übersichtlichkeit Wichtig ist der Abschluss eines case-Falls der Befehl break; Fehlt dieser, so werden ab dem zutreffen der Bedingung alle folgenden Befehle ausgeführt |
Schleifen (Details siehe unten)
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] PHP Code |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
for ( $Variable = "Startwert"; "Bedingung"; "Zähler" ) { } |
Schleife wird so lange durchlaufen wie die "Bedingung" (ZB $i<5) erfüllt wird |
while ( [Bedingung] ) { } |
Schleife wird so lange durchlaufen wie die [Bedingung] erfüllt wird |
while ( [Bedingung] ) {
[Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]continue; } |
Bei dem Befehl continue wird der restliche Code der Schleife ignoriert und das Programm am Anfang fortgesetzt Damit keine Endlosschleife produziert wird, muss vor continue unbedingt der Schleifenzähler verändert werden |
do {
} while ( [Bedingung] ); |
In dieser Schleife wird der Schleifen-Code mind. 1x durchlaufen - die Prüfung wird erst am Ende der Schleife ausgeführt |
foreach ( $Array as $Variable ) {
} |
Arrays (Variablenfelder) können mit foreach durchlaufen werden [Array] beinhaltet dabei alle Werte und auf [Variable] wird beim Durchlauf immer der nächste übergeben |
Funktionen (Details siehe unten)
Sind Unterprogramme die abgeschlossene Aufgaben übernehmen und ein Ergebniss zurückgegeben wird.
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] |
---|---|
function FunktionsName ( [$Parameter] ) {
[Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return true; } FunktionsName ( [$Parameter] ); |
Schlüsselwort function definiert eine Funktion von { bis } Über [Parameter] können Inhalte der Funktion übergeben werden. Ein Rückgabeparameter kann mit return definiert werden Die Funktion wird durch ihren Funktionnamen aufgerufen. |
function FunktionsName ( [$Parameter] = 'Standardwert' ) {
[Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return true; } echo FunktionsName ( ); |
Möchte man einen Parameter mit einem Standardwert definieren geschied dies über = 'Standardwert'. In diesem Fall muss der Parameter nicht zwingend übergeben werden |
function FunktionsName ( [$ParameterWert], [&$ParameterReferenz] ) { [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]global $Variable; } |
|
$param = func_get_args(); | Alle Parameter werden der Variable $param zugewiessen => array |
func_num_args () | Liefert die Anzahl der Parameter => bool |
func_get_arg ( $intParameterNr ) | Liefert Aufgrund Parameternummer den Wert => variant |
function_exists ( $stringFunktionsName ) | Prüft ob eine Funktion vorhanden ist => bool |
Interne Funktionen
Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt.
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
empty($a) | Prüft eine Variable ob sie einen Wert beinhaltet |
Weitere interessante Befehle / Operatoren
Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt.
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
$a = ($Bedingung) ? $b : '[Standardwert]'; ab PHP 5.3 $a = $b ?: '[Standardwert]'; |
Um einen Standardwert einer Variable zuzuweisen gibt es den ternären Operator. Dieser prüft eine Bedingung und wenn diese nicht zutrifft wird ein Standardwert genommen Achtung!!! wenn Ausgangswert ($b) 0 ist interpretiert PHP dies auch als empty. Die if-Anweisung im Beispiel behebt diese Problem BSP: $eing = ''; $ausg1 = ( !empty($eing) ) ? $eing : 'Deutschland'; $ausg2 = $eing ?: 'Deutschland'; if ($eing == '0') $ausg1 = $eing; if ($eing == '0') $ausg2 = $eing; |
String - Funktionen
Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt. Eine gute Übersicht unter http://php.net/manual/de/ref.strings.php
[Blockierte Grafik: https://e2h.de/forum/images/Leer400.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer100.png] Bedeutung |
---|---|
$p = strpos($a, 'Suchtext'); $p = strrpos($a, 'Suchtext'); $p = stripos($a, 'Suchtext'); $p = strripos($a, 'Suchtext'); |
Sucht einen Text innerhalb eines Textes stri... ignorriert Groß-/Kleinschreibung BSP: if (!strpos($a, 'xxx')) echo 'nicht gefunden'; |
$a = strtoupper($a); $a = strtolower($a); |
Wandelt den Text in Groß- bzw. Kleinbuchstaben |
$a = trim($a); $a = ltrim($a); $a = rtrim($a); |
Entfernt Leerzeichen links und/oder rechts vom Text |
$a = substr($a, $abPos[, $Laenge]); $a = substr($a, $abPos[, $bisPosVonRechts]); $a = substr($a, $abPosVonRechts[, $Laenge]); |
Gibt einen Teil des Strings zurück [] ist dabei Optional [$Laenge] (BSP 2) gibt die Anzahl der Zeichen an [$bisPosVonRechts] (BSP -3) gibt dann die Zeichen bis zur Pos von Rechts [$abPosVonRechts] (BSP -4) schneidet ab Pos von Rechts |
$b = explore( $Trennzeichen, $a); | Überträgt den String $a in ein Array $b dabei enstehen einzelne Elemente in Abhängigkeit des $Trennzeichens BSP: $a = 'ab 12 cd'; $b = explore(' ', $a); => $b[0] = 'ab' | $b[1] = '12' | $b[2] = 'cd' |
$a = htmlspecialchars($a); | Wandelt HTML-Code in Text um => Sinnvoll nach Eingaben Text HTML-Aktionen zu schützen |
Datum / Zeit Funktionen
Basis für alle Datum/Zeit-Berechnungen ist ein Timestamp (Zeitstempel) des Web-Servers seit 01.01.1970 (Sekunden seit Beginn der Unix-Epoche).
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
$a = time(); | Gibt den Zeitstempel seit 01.01.1970 zurück BSP: echo time() . ' Sekunden seit 01.01.1970 <br>'; echo intval(time() / (60 * 60 * 24)) . ' Tage seit 01.01.1970 <br>'; |
$a = date($Format); | Gibt das Datum in einem bestimmten Format zurück Format: H=Stunde (00-24), i=Minute (00-59), s=Sekunde, d=Tag (01-31), m=Monat (01-12), Y=Jahr (4stellig), h=Stunde (00-12), g=Stunde (0-12), G=Stunde (0-24), U=Sekunden seit Unix-Epoche, u=Mikrosekunden (123456), e=Zeitzone (UTC, GMT, ...), D=Wochentag (3 Zn), w=Wochentg (0=So), W=Wochennr. (Beginn Mo.), y=Jahr (2stellig), z=Anz. Tage des Jahre (1.1.=0) |
$a = mktime($h, $i, $s, $m, $d, $Y); | Wandelt eine Zeit-/Datums-Angabe in einen Timestamp BSP: $t = mktime(13, 44, 55, 7, 1, 2017); => 01.07.2017 13:44:55 |
Mathematische Funktionen
Basis für alle Datum/Zeit-Berechnungen ist ein Timestamp (Zeitstempel) des Web-Servers seit 01.01.1970 (Sekunden seit Beginn der Unix-Epoche).
[Blockierte Grafik: https://e2h.de/forum/images/Leer300.png] |
[Blockierte Grafik: https://e2h.de/forum/images/Leer200.png] Bedeutung |
---|---|
M_PI | Pi (3,14) |
$a = max( 1, 2, 3 ); | Maximalwert einer Zahlenreihe |
$a = dechex( 255 ); $a = hexdec( 'ff' ); |
Wandelt eine Zahl in einen HEX-Wert und umgekehrt |
$a = rand( $min , $max ); $a = mt_rand( $min , $max ); |
Gibt eine Zufallszahl zwischen $min und $max zurück mt_rand liefert dabei bessere Zufallszahlen |
$a = round( $b[, $Nachkomma[, $Option]] ); | Rundet eine Zahl anhand der Nachkommastellen (Default=0) $Option: => PHP_ROUND_HALF_UP Rundet bei .5 auf=> PHP_ROUND_HALF_DOWN (Defalut) Rundet bei .5 ab |
$a = floor( 5.5 ); | Rundet eine Zahl ab (hier 5) |
$a = ceil( 5.5 ); | Rundet eine Zahl auf (hier 6) |
$a = abs( -5.5 ); | Liefert den Absolutwert (ohne Vorzeichen) einer Zahl (hier 5.5) |