Toggle-Funktion für PHP

Man kann mit dieser Funktion ganz einfach den Wert einer Variablen „toggeln“ lassen, d.h. umschalten.

War die Variable vorher true, ist sie nachher false und umgekehrt:

function toggle(&$var)
{
  if(!is_bool($var))  //Akzeptiere nur true und false
  {
    return null;      //Wenn keine Referenz auf eine Boolsche Variable übergeben wurde, wird null zurückgegeben
  }
  else
  {
   if($var === true)
   {
   	 $var = false;  //toggle
   }
   else
   {
     $var = true;  //toggle
   }

   return $var;
  }
}

Die Funktion erwartet eine boolsche Variable und benötigt eine Referenz darauf (&).
Zusätzlich wird am Ende der Funktion der neue Wert zurückgegeben.

Anwendung

$test = true;
toggle($test);
echo (int)$test;

(gibt 0 aus)

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading...


4 Kommentare zu “Toggle-Funktion für PHP”

  1. Naja, keine große Kritik, aber ein kleiner Schönheitsfehler (meiner Meinung nach):

    wieso übergibst du der Funktion mit & eine Instanz der Variable und gibst sie dann dennoch zurück?
    Das return $var könntest du dir sparen^^

    Etwas kürzer würde es noch gehen:

    function toggle(&$var)
    {
    if(is_bool($var))
    {
    $var = ($var === true ? false : true);
    }
    }

  2. Jep, da hast du recht.
    So könnte man es auch machen…

    Danke für dienen Kommentar 🙂

  3. Eigentlich würde das ausreichen, da du somit auch 0 und 1 abfragen kannst:

    function toggle(&$var)
    {
    $var = ! (bool) $var;
    }

  4. Jo, so wär das natürlich noch schöner 🙂
    Aber den Code versteht garantiert kein anfänger.

Hinterlasse einen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

»Informationen zum Artikel

Autor: Simon
Datum: 02.08.2008
Zeit: 18:36 Uhr
Kategorien: Codeschnipsel
Gelesen: 8401x heute: 2x

Kommentare: RSS 2.0.
Diesen Artikel kommentieren oder einen Trackback senden.

»Meta