Switch - case Problem

S-lord

Mitglied
Hi.
Ich hatte PHP mal gelernt, aber nie angewendet -> viel vergessen.
Jetzt erneuere ich mein Wissen, stehe aber vor folgendem Problem:
Ich möchte, dass mit jedem for-Schleifendurchlauf eine andere case Variante, eben je nach $i, angewendet, und nach der switch-case Schleife ausgeführt wird.
Warum klappt es nicht?

Code:
<?php
  define('backup','Das ist jetzt mal ein Satz, ok? ;)');
  for ($i = 1; $i <= 4; $i++) {
    $var = backup;
    switch ($i) {
      case 1:
        ucwords($var);
        break;
      case 2:
        ucfirst($var);
        break;
      case 3:
       strtoupper($var);
        break;
      case 4:
       strtolower($var);
       break;
      default:
        echo 'Variable stimmt nicht mit einem der F&auml;lle &uuml;berein.';
        break;
    }
    echo $var . '<br />';
  }
?>
 
Deine SWITCH Anweisung funktioniert schon. Nur die Zuweisung von "ucwords", "ucfirst" usw. nicht.

PHP:
<?php
  define('backup','Das ist jetzt mal ein Satz, ok? ;)');
  for ($i = 1; $i <= 4; $i++) {
    $var = backup;
    switch ($i) {
      case '1':
        $var = ucwords($var);
        break;
      case '2':
        $var = ucfirst($var);
        break;
      case '3':
       $var = strtoupper($var);
        break;
      case '4':
       $var = strtolower($var);
       break;
      default:
        echo 'Variable stimmt nicht mit einem der F&auml;lle &uuml;berein.';
        break;
    }
    echo $var . '<br />';
  }
?>
 
Naja aber strtoupper/lower funktioniert ja genauso wenig.
Und nach der Switch Case Fallunterscheidung ist ja die for Schleife noch nicht beendet.
Somit sollte doch eigentlich das Richtige ausgegeben werden, denn $var wird ja erst im nächsten Schleifendurchlauf zurückgesetzt.

// Problem gelöst.
Diese Funktionen definieren ja die Variablen nicht einfach so neu, sondern man muss $var = strtoupper($var); (als Beispiel) schreiben, um die Funktion auf die Variable auch auszuführen.
 
Zuletzt bearbeitet:
Zurück