Switch mit Werten aus einem Array
Gast
- php
0 vaudi0 isset()
EisFuX
Hallo zusammen!
Kann man folgendes machen?
// List of boards
$list_of_boards = array(
"1" => "Plauderecke",
"2" => "Fussball",
"3" => "Bugs & Fehlermeldungen",
);
switch ($_REQUEST["forum"]) {
foreach ($list_of_boards AS $board_number => $board_name) {
case $board_number:
$forum_name = $board_name;
$forum = $_REQUEST["forum"];
break;
}
}
Bei mir erzeugt dies nämlich folgende Fehlermeldung:
Parse error: syntax error, unexpected T_FOREACH, expecting T_CASE or T_DEFAULT or '}' in xxx
Ich hoffe, dass mir jmd weiter helfen kann.
Danke schon mal im vorraus! :-D
Hallöchen,
Kann man folgendes machen?
Nein.
Wozu auch? Das foreach macht doch alles, was du brauchst:
foreach ($list_of_boards AS $board_number => $board_name) {
$forum_name = $board_name;
$forum = $_REQUEST["forum"];
}
> Bei mir erzeugt dies nämlich folgende Fehlermeldung:
> Parse error: syntax error...
Logisch. Switch ist der Rahmen, der die case-Blöcke zusammenfasst. Irgendwelcher Code MUSS INNERHALB einer case-Anweisung stehen.
MfG
vaudi
(Hallo|Hi(ho)|Tag|Mahlzeit) Gast,
// List of boards
$list_of_boards = array(
"1" => "Plauderecke",
"2" => "Fussball",
"3" => "Bugs & Fehlermeldungen",
);switch ($_REQUEST["forum"]) {
foreach ($list_of_boards AS $board_number => $board_name) {
case $board_number:
$forum_name = $board_name;
$forum = $_REQUEST["forum"];
break;
}
}
>
> Bei mir erzeugt dies nämlich folgende Fehlermeldung:
> Parse error: syntax error, unexpected T\_FOREACH, expecting T\_CASE or T\_DEFAULT or '}' in xxx
Wesentlich eleganter lässt sich dein Problem lösen, wenn du $list\_of\_boards andersherum aufbaust:
~~~php
$list_of_boards = array (
'Plauderecke' => 1,
'Fussball' => 2,
'Bugs & Fehlermeldungen' => 3,
);
if (isset($list_of_boards[$_REQUEST['forum']])) {
$board_name = $_REQUEST['forum'];
$board_number = $list_of_boards[$board_name];
}
// wenn nötig, hier defaultwerte einsetzen
else {
$board_name = ...;
$board_number = ...;
}
MffG
EisFuX