13

问题很简单,但我正在寻找一个创造性的解决方案。我们经常遇到数组,对象具有可以切换的属性(它可以是活动的或非活动的,1 或 0)。

我想要的是一个创造性的解决方案(一个函数),将 0 转换为 1,将 1 转换为 0。

一些例子:

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

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

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

是否有另一种单线解决方案?谢谢,享受头脑风暴。

4

3 回答 3

30

你可以做:

$state = 1 - $state;
于 2012-05-11T08:54:31.933 回答
6

试试这个代码: $state = !$state

于 2012-05-11T09:01:21.337 回答
1

如果结果允许为布尔值(并且不必是整数交换),则可以使用否定运算符:

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

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

输出:

bool(true) 
bool(false)
于 2012-05-11T08:57:02.663 回答