Я хочу знать, как работает логическая алгебра
а почему это произошло ??
echo 1*1+0*0;
echo "\n";
$part = 1*1+0;
echo $part*0;
echo "\n";
вывод:
1
0
и если у меня есть такой массив
$mx[] = array("",1);
$mx[] = array("*",1);
$mx[] = array("+",0);
$mx[] = array("*",0);
как я могу получить логический результат?
Я пробовал это, но результат получился неверным
function ch($p1,$p2,$prv) {
$ret = null;
if ($prv == null) {
$ret = $p2;
}
if ($prv != null) {
if ($p1 == "*") {
$ret = $prv*$p2;
}
if ($p1 == "+") {
$ret = $prv+$p2;
}
}
return $ret;
}
$prvx = null;
$mx[] = array("",1);
$mx[] = array("*",1);
$mx[] = array("+",0);
$mx[] = array("*",0);
foreach ($mx as $hit) {
$prvx = ch($hit[0],$hit[1],$prvx);
}
echo $prvx;
Добро пожаловать в Stack Overflow. Пожалуйста, прочтите страницы О и Как спросить в ближайшее время. Обратите внимание, что пометка вопроса на нескольких языках, как правило, является плохой идеей, особенно когда, как здесь, ваш вопрос действительно касается только одного из языков. Вы легко навлечете на себя гнев тех, кто интересуется языковыми тегами, не имеющими отношения к вопросу. В целом придерживайтесь одного языка.
Здесь нет ничего о булевой алгебре. 1 и 0 - обычные числа, вы просто занимаетесь арифметикой в начальной школе.
Второй пример заставил меня улыбнуться: foreach ($mx as $hit)
@WeatherVane, зачем улыбаться?
Извините, это было не по теме.
@beginner, потому что он читается как $hitt.






Когда ты пишешь
echo 1*1+0*0;
PHP использует приоритет оператора, чтобы решить, как сгруппировать операции. * имеет более высокий приоритет, чем +, поэтому он рассматривается как:
echo (1*1) + (0*0);
что упрощает:
echo 1 + 0;
что дополнительно упрощает:
echo 1;
Но когда вы выполняете свой цикл, который вызывает ch, вы не группируете на основе операторов, вы просто выполняете каждую операцию в том порядке, в котором она отображается в массиве $mx. Итак, ваши операции эквивалентны:
echo ((1 * 1) + 0) * 0;
что упрощает:
echo (1 + 0) * 0;
что эквивалентно:
echo 1 * 0;
который:
echo 0;
Первый вопрос не о логическом: это простая арифметика.