echo result(1);
function reslut($num)
{ if($num == 1) return 0; if($num == 0) return 1;
}
Как это сделать без использования инструкции if
или else
?Как напечатать значение без if else
echo result(1);
function reslut($num)
{ if($num == 1) return 0; if($num == 0) return 1;
}
Как это сделать без использования инструкции if
или else
?Как напечатать значение без if else
Использование троичной оператора, вы можете сделать это, но вы можете определить только одно условие
Это действительно только комментарий. Чтобы дать ему ответ хотя бы показать пример – RiggsFolly
Google это чувак. Просто google –
@vikrammistry Это зависит от вас, если вы хотите опубликовать ответ. Но перестаньте считать, что публикация эквивалента «Google это» является разумным ответом. – chepner
Используйте оператор ?:
следующим образом:
$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;
Результат:
1
0
1
0
Спасибо, дорогой frd –
Я отрегулирована ваша функция - дала ему имя result
и добавила аргумент $num
.
Обратите внимание, что на самом деле имеет три возможных значения возврата: 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,
)
я использовал контракт, если другое заявление с троичного оператора. И используется оператор побитового XOR, чтобы переключаться между 1 и 0.
Если у вас аллергия на IFS, вы могли бы заменить функцию с той же монетой с помощью инструкций переключателя:
function result($num)
{
switch($num) {
case 1:
return 0;
break;
case 0:
return 1;
break;
}
}
'вернуться! $ Num'? – chepner
Обратите внимание, что функция 'reslut' не имеет аргументов. Вы, наверное, хотели '$ num'. – Progrock
И 'result' - это другое имя функции для' reslut'. – Progrock