2012-05-11 63 views
6

Vấn đề rất đơn giản, nhưng tôi đang tìm một giải pháp sáng tạo. Chúng tôi gặp rất thường xuyên mảng, đối tượng có tài sản có thể được chuyển đổi (nó có thể hoạt động hoặc không hoạt động, 1 hoặc 0).PHP - trạng thái chuyển đổi

Những gì tôi muốn là một giải pháp sáng tạo (một chức năng) để chuyển đổi 0-1, và 1 đến 0.

Một số ví dụ:

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

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

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

Có khác, một dòng giải pháp cho việc này? Cảm ơn và tận hưởng động não.

+1

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

Trả lời

20

Bạn có thể làm:

$state = 1 - $state; 
+2

Tôi thích điều này. Rất đơn giản! –

1

Nếu kết quả được phép trở thành một boolean (và nó không phải là một hoán đổi số nguyên), bạn có thể sử dụng toán tử phủ định:

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

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

Output:

bool(true) 
bool(false) 
+0

Ý tưởng hay. Nếu cần một kiểu đúc có thể được thực hiện: (int) (! $ State); –

3

Hãy thử mã này: $state = !$state

Các vấn đề liên quan