Frage von Jupiter7468, 46

Gibt es dafür in php eine Abkürzung?

Wenn ich testen will, ob eine Variable gesetzt ist und ich nicht in mein apache Error log "undefined variable" oder "undefined offset" haben will, muss ich vorher mit

if(!isset($auswertung)){ $auswertung = 1; }

das überprüfen. Und dann erst mit der Variable arbeiten.

Geht das auch kürzer, oder muss das echt jedesmal eine if-Schleife sein?

Danke!

Antwort
von fluffiknuffi2, 18

Seit PHP 7:

$auswertung = $auswertung ?? 1;

?? ist der null coalesce operator

Kommentar von triopasi ,

Lieder ist PHP 7 noch nicht so weit verbreitet, würde das also noch nicht nutzen...

Habe schon Code an Leute weitergegeben mit

function foo(...$vars) {...}

und das ging nicht, da man dafür PHP 5.6 benötigt..

Kommentar von fluffiknuffi2 ,

Ich nutze selber eigentlich auch noch PHP 5.5. :D

Antwort
von Suboptimierer, 21

Nur als Idee (nicht ausprobiert): Schreibe dir eine Funktion, die das für dich überprüft.

function myIsset(&$variable, $default=1)
{
  if(!isset($variable)){ $variable = $default; }
}


Antwort
von Malemeister, 23

Jede Variable die du nicht selber setzt solltest du zwingend kontrollieren!

Denn diese Variable kommt nicht von deinem System und ist somit erstmal eine Gefahr! Ein isset reicht hier auch nicht aus, du solltest genauer prüfen. Wenn du z.B. eine Zahl erwartest dann überprüfe auch ob du eine bekommst.

Wenn du diese Variablen selber setzt brauchst du auch kein isset. Jedenfalls dann nicht, wenn du es richtig machst!

Und noch was: "If-Schleifen" gibt es nicht! "If" ist und wird nie eine Schleife sein! Durchlesen und verstehen! http://php.net/manual/de/control-structures.if.php

Kommentar von Jupiter7468 ,

Ja, danke schon so oft gehört, und immer wieder vergessen :)

Antwort
von triopasi, 31

Das muss ein if sein, kann aber kurz geschrieben werden:

$var = (isset($_GET[...]) ? $_GET[...]: 1;

Kommentar von fluffiknuffi2 ,

Seit PHP 7 geht das hier:

$var = $var ?? 1;
Kommentar von triopasi ,

Lieder ist PHP 7 noch nicht so weit verbreitet, würde das also noch nicht nutzen...

Habe schon Code an Leute weitergegeben mit

function foo(...$vars) {...}

und das ging nicht, da man dafür PHP 5.6 benötigt..

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten