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

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

} 

Wie kann ich dies tun, ohne eine if oder else Aussage zu verwenden?Wie drucke ich ohne wenn sonst?

+1

'return! $ num'? – chepner

+0

Beachten Sie, dass Ihre 'reslut' -Funktion keine Argumente hat. Wahrscheinlich wollten Sie '$ num'. – Progrock

+0

Und 'result' ist eine andere Funktionsnamen' reslut'. – Progrock

Antwort

-3

ternären Operator verwenden, können Sie das tun, aber Sie können nur eine Bedingung definieren

+0

Das ist wirklich nur ein Kommentar. Um es zu einer Antwort zumindest ein Beispiel zu zeigen – RiggsFolly

+0

Google it dude. Nur –

+1

google @vikrammistry Es liegt an Ihnen, wenn Sie eine Antwort zu stellen. Aber hör auf anzunehmen, dass die Veröffentlichung des Äquivalents von "Google it" eine vernünftige Antwort ist. – chepner

0

Verwenden Sie den ?: Operator wie folgt:

$num == 1 ? when_true_expression : when_false_expression; 

Sie nisten können diesen Operator.

0

Sie könnten einfach eine ! in der Funktion wie folgt verwenden, als ob die betreffende Variable entweder 1 oder 0 sein im Allgemeinen ein boolean

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; 

Ergebnis ist:

1 
0 
1 
0 
+0

Danke lieber frd –

0

Ich stellte habe Ihre Funktion - der Name result gegeben und hinzugefügt, um das Argument $num.

Beachten Sie, wie es tatsächlich drei mögliche Rückgabewerte: 0, 1 und null.

Weil Sie nicht den identischen Vergleichsoperator (eher verwenden Sie den gleichen Vergleichsoperator), Ausgang vielleicht nicht, was Sie erwarten, wie Php irgendeine Art Jonglier tun kann.

Ich habe eine Funktion hinzugefügt, die eine Eingabe von 1 gegeben 0 zurück, und eine Eingabe von 0 gegeben wird 1 zurückkehren, andere Eingang den Wert null zurück.

<?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) 
); 

Output-Arrays:

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, 
) 

Ich habe eine zusammengezogen, wenn else-Anweisung mit dem ternären Operator verwendet. Und nutzte die xor bitweise Operator Flip zwischen 1 und 0.

Wenn Sie allergisch auf ifs sind, können Sie Ihre Funktion mit einem Gleiches mit Gleichem mit switch-Anweisungen ersetzen könnte:

function result($num) 
{ 
    switch($num) { 
     case 1: 
      return 0; 
      break; 
     case 0: 
      return 1; 
      break; 
    } 
}