[PHP] Abfrage ob Variable existiert

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

folgendes Problem bereitet mir Kopfzerbrechen.

Ich habe ein Array:
PHP:
$options = array("help" => 0,
                 "-b" => 0,
                 "c" => 1);

Dieses Array gebe ich an eine Funktion (myGetOpt()) in Ihr findet unter anderem folgende Abfrage statt:
PHP:
if(!isset($arr[$key])){
     $arr[$key]=NULL;
}

Das bedeutet doch, wenn das Argument nicht gegeben ist, dann setze es auf NULL.

In meinem Script, also nach dem Funktionsaufruf, möchte ich überprüfen ob das Argument existiert:
PHP:
if(isset($options["-b"])){
     echo "Ja";
}else{
     echo "Nein";
}

Da diese Datei über Putty (Shell) aufgerufen werden kann, kann ich ja auch meine zuvor erstellten Argumente mit übergeben (siehe Array)
Einen teil der Argumente überprüfe ich auf einen Wert, bei dem Argument -b bekomme ich nach der Abfrage ob es überhaupt existiert, immer ein Ja heraus auch wenn ich es bei dem Aufruf gar nicht mit angebe.

Liegt das nun an der Funktion, da ich dort ja sage:
PHP:
$arr[$key]=NULL;

Weil damit weise ich dem Argument ja indirekt einen Wert zu, nämlich NULL!

Wer weiß wie ich die abfrage machen kann ob die Variable existiert!? Abfragen ob sie einen Wert enthällt nützt mir leider nicht!

Danke für die Hilfe!


MFG
Papenburger
 
Geht es bei den Werten denn um Zahlen? Falls nein, dann könntest du ja abfragen ob der Wert der Variable gleich null ist.

Ansonsten in dem ersten CodeTeil einfach ändern, dass wenn eine Variable NICHT vorhanden ist, er diese = "" setzt also leer... das könntest du dann auch abfragen...

Wenn der Key in dem Array aber mal gesetzt ist, dann ist er vorhanden und kann nicht mehr abgefragt werden, ob er existiert, weil er immer da ist...

Oder du lässt den ersten Teil weg (wo, wenn die Var nicht existiert sie = 0 gesetzt wird) und fügst das nach deinem Teil ein, sofern das überhaupt von Nöten ist.