2012-05-11 11 views
6

Problem jest prosty, ale szukam kreatywnego rozwiązania. Spotykamy bardzo często tablice, obiekty, które mają właściwość, którą można przełączać (może być aktywna lub nieaktywna, 1 lub 0).PHP - toggle state

Co chcę to twórcze rozwiązanie (funkcją), aby przekształcić 0 na 1 i 1 na 0.

Kilka przykładów:

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

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

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

istnieje inny, jedna linia rozwiązanie dla tego? Dzięki, i ciesz się burzą mózgów.

+1

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

Odpowiedz

20

można zrobić:

$state = 1 - $state; 
+2

Podoba mi się to. Bardzo prosta! –

1

Jeśli wynik może być logiczna (i to nie musi być zamiana całkowitą) można użyć operatora negacji:

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

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

wyjście:

bool(true) 
bool(false) 
+0

Dobry pomysł. W razie potrzeby można wykonać rzutowanie: (int) (stan! $); –