2012-05-11 9 views
6

Das Problem ist einfach, aber ich bin auf der Suche nach einer kreativen Lösung. Wir treffen sehr oft Arrays, Objekte, die eine Eigenschaft haben, die umgeschaltet werden kann (es kann aktiv oder inaktiv sein, 1 oder 0).PHP - toggle Zustand

Was ich will, ist eine kreative Lösung (eine Funktion) von 0 bis 1 zu transformieren, und 1 auf 0

Einige Beispiele:

// First 
if ($state == 1) 
{ 
    $state = 0; 
} 
else 
{ 
    $state = 1; 
} 

// Second 
$states = array(1, 0); 
$state = $states[$state]; 

// Third 
$state = ($state == 1) ? 0 : 1; 

Gibt es eine andere, eine Zeile Lösung? Danke, und genießen Sie das Brainstorming.

+1

http://stackoverflow.com/questions/4603589/boolean-value-switch-invert – djot

Antwort

20

Sie tun können:

$state = 1 - $state; 
+2

Ich mag das. Sehr einfach! –

1

Wenn das Ergebnis erlaubt eine boolean zu sein (und es muss nicht eine ganze Zahl swap) können Sie den Negationsoperator verwenden:

<?php 
$state = 0; 
var_dump(!$state); 

$state = 1; 
var_dump(!$state); 

Ausgang:

bool(true) 
bool(false) 
+0

Gute Idee. Bei Bedarf kann eine Typumwandlung durchgeführt werden: (int) (! $ State); –

3

diesen Code Versuchen: $state = !$state