"Notice: Undefined Variable" mit wenig Tippen verhindern

17/10/2011 - 16:25 von Matthias P. Wuerfl | Report spam
Hallo!

Ich habe mal eine ganz alltàgliche und banale Frage:

Früher haben wir ja immer alle einfach

if($irgendwas)

und

$x = $irgendwas

geschrieben, auch wenn nicht klar war, ob $irgendwas gesetzt ist oder
nicht. PHP hat immer was schönes einfallen lassen was man gebrauchen
konnte. Da war die Welt noch in Ordnung. Das hat aber nur so lange
wunderbar funktioniert, bis jemand das Error_Reporting verstellt hat.
Seitdem haben wir dadurch viele schöne andere Vorteile, so dass ich es
auch nicht wieder zurückstellen will. Leider schreibe ich mir aber
seitdem die Finger wund mit:

if(isset($irgendwas) && ($irgendwas))

und

$x = isset($irgendwas) ? $irgendwas : ""

und das finde ich schade. Wie kann ich möglichst elegant und mit wenig
möglichst Tipparbeit im konkreten Fall einfach eine Variable nutzen und
für den Fall, dass sie nicht gesetzt ist halt NULL oder FALSE oder einen
Leerstring zurückbekommen?

- Einer Funktion "null if not set = nins()" könnte man den Namen der
Variablen übergeben, aber das finde ich von der Syntax her nicht schön,
weil man dann nur den Variablennamen als String hat.

if(nins("irgendwas"))

$x = nins("irgendwas")

- "@" macht hie und da Ärger mit eigenen error-Handlern und unterdrückt
auch *alle* fehler, nicht nur das "undefined"

if(@$irgendwas)

$x = @$irgendwas

- andere Ideen? Wie macht Ihr das?

Grüße, Matthias
 

Lesen sie die antworten

#1 Niels Braczek
17/10/2011 - 16:31 | Warnen spam
On 17.10.2011 16:25, Matthias P. Wuerfl wrote:

if(isset($irgendwas) && ($irgendwas))



if (!empty($irgendwas))

$x = isset($irgendwas) ? $irgendwas : ""



Falls nicht vorher geprüft:

$x = @(string)$irgendwas

MfG
Niels

| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |

Ähnliche fragen