2016-12-03 11 views
0
echo result(1); 

function reslut($num) 
{ if($num == 1) return 0; if($num == 0) return 1; 

} 

ifまたはelseステートメントを使用せずにこれを行うにはどうすればよいですか?他の場合の値を印刷する方法

+1

'返します! $ num'? – chepner

+0

'reslut'関数に引数がないことに注目してください。あなたはたぶん '$ num'を望んでいました。 – Progrock

+0

'result'は' reslut'とは異なる関数名です。 – Progrock

答えて

-3

三項演算子を使って、あなたはそれを行うことができますが、次のように1つの条件のみ

+0

これは本当に単なるコメントです。それを答えにするには少なくとも – RiggsFolly

+0

の例を示してください。ただgoogle –

+1

@vikrammistry答えを投稿したいのはあなた次第です。しかし、「Google it」と同等のものを投稿することが妥当な答えであると仮定するのをやめてください。 – chepner

0

使用?:演算子を定義することができます:あなたは巣この演算子をすることができます

$num == 1 ? when_true_expression : when_false_expression; 

を。

問題の変数が1つのまたは0の基本的ブール

function result($num) 
{ 
    return (int)!$num; 
} 

$t = 0; 
$t = result($t); 
echo $t . PHP_EOL; 
$t = result($t); 
echo $t . PHP_EOL; 
$t = result($t); 
echo $t . PHP_EOL; 
$t = result($t); 
echo $t . PHP_EOL; 

結果のどちらかであるかのようにあなたは、単にこのような関数で!を使用することができ

0

1 
0 
1 
0 
+0

おかげで親愛なるfrd –

0

私が調整してきましたあなたの関数 - 名前はresultで、引数は$numです。

実際には3つの可能な戻り値0、1、およびnullがあることに注意してください。

同等の比較演算子を使用していないので(等価比較演算子を使用するのではなく)、Phpがいくつかの型ジャグリングを行う可能性があるため、出力が期待通りでない可能性があります。

入力を1にすると0が返され、入力が0の場合は1が返され、他の入力がnullを返す関数を追加しました。

<?php 
// Your function. 
function result($num) 
{ 
    if($num == 1) 
     return 0; 
    if($num == 0) 
     return 1; 
} 

function swap_one_and_zero($num) 
{ 
    return in_array($num, [1,0], true) ? $num^1 : null; 
} 

$tests = [-1, 0, 1, 1.1, 2, 'a', 'foo', null]; 

var_export(
    array_map('result', $tests) 
); 

var_export(
    array_map('swap_one_and_zero',$tests) 
); 

出力配列:

array (
    0 => NULL, 
    1 => 1, 
    2 => 0, 
    3 => NULL, 
    4 => NULL, 
    5 => 1, 
    6 => 1, 
    7 => 1, 
) 

array (
    0 => NULL, 
    1 => 1, 
    2 => 0, 
    3 => NULL, 
    4 => NULL, 
    5 => NULL, 
    6 => NULL, 
    7 => NULL, 
) 

私は三項演算子との契約であればelse文を使用しました。そして、あなたはIFSにアレルギーがある場合は、switch文を使用してなどのためなどで、あなたの関数を置き換えることができます1と0

の間で反転するのXORビット演算子を使用:

function result($num) 
{ 
    switch($num) { 
     case 1: 
      return 0; 
      break; 
     case 0: 
      return 1; 
      break; 
    } 
} 
関連する問題