Php Как работает логическая алгебра?

Я хочу знать, как работает логическая алгебра

а почему это произошло ??

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;

Первый вопрос не о логическом: это простая арифметика.

Weather Vane 14.09.2018 21:45

Добро пожаловать в Stack Overflow. Пожалуйста, прочтите страницы О и Как спросить в ближайшее время. Обратите внимание, что пометка вопроса на нескольких языках, как правило, является плохой идеей, особенно когда, как здесь, ваш вопрос действительно касается только одного из языков. Вы легко навлечете на себя гнев тех, кто интересуется языковыми тегами, не имеющими отношения к вопросу. В целом придерживайтесь одного языка.

Jonathan Leffler 14.09.2018 21:46

Здесь нет ничего о булевой алгебре. 1 и 0 - обычные числа, вы просто занимаетесь арифметикой в ​​начальной школе.

Barmar 14.09.2018 21:47

Второй пример заставил меня улыбнуться: foreach ($mx as $hit)

Weather Vane 14.09.2018 21:48

@WeatherVane, зачем улыбаться?

beginner 14.09.2018 21:50

Извините, это было не по теме.

Weather Vane 14.09.2018 21:51

@beginner, потому что он читается как $hitt.

Swordfish 14.09.2018 21:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
43
1

Ответы 1

Когда ты пишешь

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;

Другие вопросы по теме