Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Prüfen, ob eine Variable definiert ist

Welche Methoden zur Verfügung stehen, um in PHP zu überprüfen, ob eine Variable oder ein Array-Schlüssel definiert sind

>

1. Prüfung mit isset()

Mittels isset() kann geprüft werden, ob eine Variable bereits definiert wurde.

PHP-Code
<?php
    $a = 1000;
	$b = 0;

	var_dump( isset($a) ); // true
	var_dump( isset($b) ); // true
	var_dump( isset($ab) ); // false
	var_dump( isset($foo) ); // false
?>

HTML-Code: Ausgabe
bool(true)
bool(true)
bool(false)
bool(false)


2. isset() auf Arrays angewandt

Häufig wird isset() auf Arrays angewendet, um zu prüfen, ob der Wert zu einem bestimmten Schlüssel existiert:

PHP-Code
<?php
	$alter = array('peter'=>31, 'ralf'=>46, 'susie'=>25);
	if (isset($alter['tommy'])) {
		echo($alter['tommy']);
	} else {
		echo('Das Alter von Tommy ist unbekannt.');
	}
?>

HTML-Code: Ausgabe
Das Alter von Tommy ist unbekannt.

Ein nützlicher Hinweis ist es dabei, dass mittels array_flip() die Schlüssel und Werte von Arrays vertauscht werden können, sodass array('peter'=>31) in array(31=>'peter') umgewandelt wird. So ist es auch mit isset() möglich zu prüfen, ob ein Wert in einem Array existiert (und nicht nur ob ein bestimmter Schlüssel vorhanden ist).

PHP-Code
<?php
	// Freunde von Benutzer A, ID-Nummern
	$friendsA = array(19942, 42455, 1343, 19298);

	// Freunde von Benutzer B, ID-Nummern
	$friendsB = array(3456, 42455, 123, 98484);

	$friendsBf = array_flip($friendsB);
	foreach ($friendsA as $val) {
		if (isset($friendsBf[$val])) {
			echo('Der Freund mit ID '.$val.' ist beiden Nutzern zugeteilt.');
		}
	}
?>

HTML-Code: Ausgabe
Der Freund mit ID 42455 ist beiden Nutzern zugeteilt.

3. empty() und Arrays

isset() hat einen Nachteil: Wenn einer Variablen der Wert NULL zugeordnet ist, dann gibt isset() immer false zurück, egal ob der Wert einer Variablen ($var) oder eines Array-Schlüssels ($var['key']) getestet wird. Umgangen werden kann dieses Problem indem !empty() statt isset() verwendet wird.

PHP-Code
<?php
	$a = 1000;
	$b = null;
	$c = array('eins'=>1, 'zwei'=>null);

	var_dump( isset($a) ); // true
	var_dump( isset($b) ); // false
	var_dump( isset($existiertNicht) ); // false
	var_dump( isset($c['eins']) ); // true
	var_dump( isset($c['zwei']) ); // false
	var_dump( isset($c['existiertNicht']) ); // false

	echo("\n\n");

	var_dump( !empty($a) ); // true
	var_dump( !empty($b) ); // false
	var_dump( !empty($existiertNicht) ); // false
	var_dump( !empty($c['eins']) ); // true
	var_dump( !empty($c['zwei']) ); // false
	var_dump( !empty($c['existiertNicht']) ); // false
?>

HTML-Code: Ausgabe
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)


bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)


4. isset() vs empty() vs array_key_exists() bei Arrays

Auch empty() ist nicht ohne Nachteile: Alle false-ähnlichen Werte werden als leer angesehen und empty() gibt daher für diese true zurück. Diese Werte sind im einzelnen: (bool)false, (int)0, (float)0.0, (string)"", (string)"0" und NULL. Um auch dieses Problem zu „umschiffen” kann die etwas unhandlichere Funktion array_key_exists() verwendet werden. Diese erwartet den Namen des zu prüfenden Schlüssels und das Array, das untersucht werden soll. Ist der Schlüssel in dem Array definiert — egal welcher Wert — wird true zurückgegeben, sonst false.

PHP-Code
<?php
	$arr = array('eins'=>'test', 'zwei'=>null, 'drei'=>0);

	echo("isset:\n");

	var_dump(isset($arr['eins'])); // true
	var_dump(isset($arr['zwei'])); // false
	var_dump(isset($arr['drei'])); // true
	var_dump(isset($arr['vier'])); // false

	echo("\nempty:\n");

	var_dump(!empty($arr['eins'])); // true
	var_dump(!empty($arr['zwei'])); // false
	var_dump(!empty($arr['drei'])); // false
	var_dump(!empty($arr['vier'])); // false

	echo("\narray_key_exists:\n");

	var_dump(array_key_exists('eins', $arr)); // true
	var_dump(array_key_exists('zwei', $arr)); // true
	var_dump(array_key_exists('drei', $arr)); // true
	var_dump(array_key_exists('vier', $arr)); // false
?>

HTML-Code: Ausgabe
isset:
bool(true)
bool(false)
bool(true)
bool(false)

empty:
bool(true)
bool(false)
bool(false)
bool(false)

array_key_exists:
bool(true)
bool(true)
bool(true)
bool(false)