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;

これに対する別の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 に答える