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

Variablenname anhand der RÜckgabe einer Funktion festlegen

Wie das Ergebnis einer Funktion als Name für eine Variable in PHP verwendet werden kann

1. Erläuterungen

Der Name von Variablen kann in Abhängigkeit vom Rückgabewert einer Funktion festgelegt werden. Die Syntax dafür lautet

PHP-Code
${ foo() } = ...;

wobei foo() eine beliebige Funktion ist, die einen Wert zurückgeben muss, der ein String ist oder sich zumindest in einen String umwandeln lässt. (Es darf übrigens selbst ein leerer String zurückgegeben werden.)

2. Beispiel: Einfacher Rückgabewert

In diesem Beispiel gibt die Funktion foo() den Namen der Variable zurück, welcher bar ist. Dieser Variable wird der Wert test zugewiesen.

PHP-Code
<?php
    function foo() {
		return 'bar';
	}

	${foo()} = 'test';
	var_dump( ${foo()}, $bar );
?>

HTML-Code: Ausgabe
string(4) "test"
string(4) "test"


3. Beispiel: Komplexere Verkettung

Die Zuweisung kann auch „indirekter” erfolgen. Im nachfolgenden Beispiel wird an foo() eine Callback-Funktion übergeben, welche wiederum den Wert von $test zurückgibt, der wiederum „st” ist. foo() verknüpft diesen String mit „te” am Anfang, wodurch sich „test” ergibt. Der Variable mit dem Namen „test” wird anschließend der Inhalt „neuer Wert” zugewiesen.

PHP-Code
<?php
	$test = 'st';

	function foo($callback) {
		// $callback() ergibt 'st'
		return 'te' . $callback();
	}

	$callback = function() use ($test) {
			return $test;
		    };
	${foo($callback)} = 'neuer wert';

	var_dump($test);
?>

HTML-Code: Ausgabe
string(10) "neuer wert"


4. Beispiel: Monate mit Übersetzung

Das nachfolgende Beispiel durchläuft alle Monate (auf Englisch) und weist den gleichnamigen Variablen die deutsche Übersetzung zu. Am Ende erhält man die Variablen $january, $february, $march usw., welche die Werte „Januar”, „Februar”, „Maerz” usw. enthalten.

PHP-Code
<?php
	function translateMonth($lang, $month) {
		if ($lang === 'de') {
			// deutsche Übersetzungen
			switch ($month) {
				case 1: return 'Januar';
				case 2: return 'Februar';
				case 3: return 'Maerz';
				// ...
			}
		} else if ($lang === 'fr') {
			// hier könnten die französischen Übersetzungen stehen
			// ...
		} else {
			// englische Standardwerte
			// werden in diesem Beispiel nicht verwendet
			switch ($month) {
				case 1: return 'January';
				case 2: return 'February';
				case 3: return 'March';
				// ...
			}			
		}
	}

	
	foreach (range(1, 12) as $month) {
		// der Teil zwischen den geschweiften Klammern ergibt den Monat mit Nummer $month
		// in Englisch und klein geschrieben
		${ strtolower(date('F', mktime(0, 0, 0, $month, 1, 1970))) } = translateMonth('de', $month);
	}
	
	echo('Translated months: ' . $january . ', ' . $february .', ' . $march);
?>

HTML-Code: Ausgabe
Translated months: Januar, Februar, Maerz