Werbung
Werbung
Werbung
Archive
Folge uns auf Twitter
Werbung

Jede Menge neue Twitter Follower bekommen. Die Software hat einen kostenlosen Trial Mode, der bis zu 250 Follower bringt.

Willkommen
Willkommen im PHP Archiv Blog! Hier gibts Infos zum Thema PHP Codeschnipsel und Tipps. Bei unserem Projekt phparchiv.de, finden Sie über 5700 Scripte.

Entweder/oder, wo ist der Unterschied?

Entweder oder

Der normale Weg eine entweder/oder Entscheidung zu formulieren, ist:

if () {
$a = $b;
} else {
$a = $c;
}

In PHP (und anderen Sprachen), kann man dies vereinfachen:

$a = ? $b : $c;

Im Klartext bedeutet das: Wenn zutrifft (wahr ist, also true ergibt), dann führe aus was hinter dem Fragezeichen kommt, bis zum Doppelpunkt. Wenn die Bedingung nicht zutrifft (also falsch ist und false ergibt), dann führe aus was hinter dem Doppelpunkt kommt.

Nehmen wir an, wir haben eine Funktion der ein Parameter übergeben werden kann. Dieser Parameter wird, wenn es sich um einen gültigen Wert handelt, in eine globale Variable übernommen. Wird kein Parameter übergeben, oder handelt es sich nicht um einen gültigen Parameter, dann soll der letzte definierte Wert (der letzte gültige, übergebene Parameter) eingesetzt werden.

function test($param==”") {
$a = empty($param) ? $letztesA : $letztesA = $param;
}

Das passiert: Ist der übergebene Parameter ($param) leer (empty), bekommt $a den Wert von $letztesA zugewiesen. Ist $param nicht leer, geschehen 2 Dinge: $letztesA bekommt den Wert von $param, und das Ergebnis wird an $a weiter gegeben.

Konventionell sähe das so aus:

function test($param==”") {
if (empty($param)) {
$a = $letztesA;
} else {
$a = $param;
$letztesA = $param;
}
}

oder besser:

function test($param==”") {
if (empty($param)) {
$param = $letztesA;
}
$a = $letztesA = $param;
}

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>