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 ein Array ist

Welche Funktionen existieren, ob in PHP herauszufinden, ob es sich bei einer Variable um ein Array handelt

1. is_array()

Die Funktion is_array($var) gibt zurück, ob die übergebene Variable ein Array ist:

PHP-Code
<?php
    var_dump( is_array(array()) ); // true
	var_dump( is_array(array(1, 2, 3)) ); // true
	var_dump( is_array(array(array())) ); // true
	var_dump( is_array($_SERVER) ); // true

	var_dump( is_array(1) ); // false
	var_dump( is_array(0) ); // false
	var_dump( is_array(1.999) ); // false
	var_dump( is_array('foo') ); // false
	var_dump( is_array(true) ); // false
	var_dump( is_array(new stdClass()) ); // false
	var_dump( is_array('array()') ); // false
?>

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


Die Verwendung von is_array() zum Prüfen von Funktionsparametern ist nicht zwingend notwendig, da arrays bereits vorgeschrieben werden können:

PHP-Code
<?php
	function meineFunktion(array $a) {
		// ...
	}

	meineFunktion('test'); // erzeugt einen Fehler
?>

HTML-Code: Ausgabe
<br />
<b>Catchable fatal error</b>:  Argument 1 passed to meineFunktion() must be an array, string given, called in ...\test.php on line 6 and defined in <b>...\test.php</b> on line <b>2</b><br />


2. Anwendung bei Funktionsparametern

Die Funktion is_array() kann nützlich sein, wenn ein Funktionsparameter zwar gewöhnlich ein Array sein sollte, optional aber auch andere Datentypen haben kann. Im nachfolgenden Beispiel wird eine Funktion „sucheMehrereUser” definiert, welche mit mehreren Namen oder ID-Nummern — übergeben als Array — aufgerufen werden soll. Es wird aber auch die Option angeboten, nur einen String (ein einzelner Benutzername) oder einen Integer (eine einzelne ID) zu übergeben. Der String oder die ID werden dann automatisch in ein Array umgewandelt.

PHP-Code: Beispiel 1: Es darf Integer, String oder Array von Strings/Integern übergeben werden
<?php
	function sucheMehrereUser($namen) {
		// wurde z.B. nur ein einzelner Name übergeben?
		if (!is_array($namen)) {
			// Wurde ein Name übergeben?
			if (!is_string($namen) && !is_int($namen)) {
				throw new Exception('Sting/Integer oder Array von Strings/Integern erwartet.');
			} else {
				return sucheMehrereUser(array($namen));
			}
		} else {
			// suche
			// hier beispielhaft nur Ausgabe der Namen/Ids
			echo("suche nach: ");
			array_walk($namen, function($name) { echo "$name, " });
			echo("\n");
		}
	}

	sucheMehrereUser('testuser');
	sucheMehrereUser(1413);
	sucheMehrereUser(array('a', 'b', 'c'));
?>

HTML-Code: Ausgabe
suche nach: testuser, 
suche nach: 1413, 
suche nach: a, b, c, 


Im nächsten Beispiel ist ein Parameter komplett optional, muss aber zwangsweise ein Array sein, falls er vom Entwickler definiert wird. Wird er nicht übergeben, dann soll er automatisch mit einem leeren Array belegt werden.

PHP-Code: Beispiel 2: Default-Wert für nicht definiertes Array
<?php
	function tuWas(array $data=null) {
		// Aehnlich verhalten wuerden sich hier auch is_null($data) oder $data===null
		if (!is_array($data)) {
			// hier könnten einige Default-Werte festgelegt werden
			$data = array();
		}

		var_dump($data);
	}

	tuWas(array(1, 2, 3));
	tuWas();
?>

HTML-Code: Ausgabe
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}
array(0) {
}