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

Mehrere Variablen auf einmal definieren

Möglichkeiten, mehrere Variablen in PHP in einem Kommando zu definieren

1. Basissyntax

Will man mehrere Variablen „in einem Rutsch” definieren, dann wäre eine wohl häufig erwartete Schreibweise, diese per Kommata zu trennen. In PHP führt dies aber zu einem Parse Error:

PHP-Code
<?php
    $a = 1, $b = 2;
	var_dump($a, $b);
?>

HTML-Code: Ausgabe
<br />
<b>Parse error</b>:  syntax error, unexpected ',' in <b>...\test.php</b> on line <b>2</b><br />


Der einfachste Weg, dies zu vermeiden, ist die Verwendung des Semikolons statt des Kommas. Allerdings erfüllt das dann nicht mehr die Bedingung „in einem Rutsch”, sondern zeigt nur, dass Kommandos in PHP nicht durch Zeilenumbrüche getrennt werden müssen.

PHP-Code
<?php
	$a = 1; $b = 2;
	var_dump($a, $b);
?>

HTML-Code: Ausgabe
int(1)
int(2)


Den „Ausweg” bietet folgende Schreibweise:

PHP-Code
<?php
	$a = $b = $c = 1;
	var_dump($a, $b, $c);
?>

HTML-Code: Ausgabe
int(1)
int(1)
int(1)


Nachteil dieser Schreibweise ist es, dass für jede der Variablen immer der selbe Wert festgelegt wird.

2. Ungewöhnlichere Schreibweisen

Mit der Kombination aus list() und einem Array können mehreren Variablen verschiedene Werte zugewiesen werden. Diese Schreibweise ist aber schwerer zu lesen und um den selben Wert mehreren Variablen zuzuweisen, muss er entsprechend oft im Array eingetragen werden.

PHP-Code
<?php
	list($a, $b, $c) = array(1, 1, 2);
	var_dump($a, $b, $c);
?>

HTML-Code: Ausgabe
int(1)
int(1)
int(2)


Es ist auch möglich, die for-Schleife zum Zuweisen von Variablen zu „missbrauchen”. Dazu muss nur an der richtigen Stelle „false” eingetragen werden, sodass die Schleife nie startet. Die zugewiesenen Variablen sind auch nach dem Ende der for-Schleife noch vorhanden — im Gegensatz zu vielen anderen Programmiersprachen, bei denen diese mit dem Ende der Schleife verloren gehen.

PHP-Code
<?php
	for ($a = 1, $b = $c = 2; false;);
	var_dump($a, $b, $c);
?>

HTML-Code: Ausgabe
int(1)
int(2)
int(2)


3. Felder von Objekten

Mehr Flexibilität hat man beim Definieren der Felder von Objekten. Ein kommagetrenntes Zuweisen von Werten ist möglich ($a = 1, $b = 2) und man muss nicht zwangsweise jedem Feld einen Wert geben.

PHP-Code
<?php
	class Example {
		public $a, $b;
		public $c, $d = 1;
		public $e = 2, $f = 2;
	}
	
	$ex = new Example();
	
	var_dump($ex->a, $ex->b);
	var_dump($ex->c, $ex->d);
	var_dump($ex->d, $ex->e);
?>

HTML-Code: Ausgabe
NULL
NULL
NULL
int(1)
int(1)
int(2)


Jedoch führt das Zuweisen des selben Werts zu mehreren Variablen zu einem Parse Error:

PHP-Code
<?php
	class Example {
		public $a = $b = 1;
	}
	
	$ex = new Example();
	var_dump($ex->a, $ex->b);
?>

HTML-Code: Ausgabe
<br />
<b>Parse error</b>:  syntax error, unexpected T_VARIABLE in <b>...\test.php</b> on line <b>3</b><br />