SóProvas


ID
3134827
Banca
VUNESP
Órgão
SAAE de Barretos - SP
Ano
2018
Provas
Disciplina
Programação
Assuntos

Um programador PHP desenvolveu o código a seguir:

 

<?php

    $a = true;

    $b = false;

    $c = $a and $b;

    echo $c ? "verdadeiro" : "falso";


No entanto, ao executar esse código, ele notou que o programa imprimia a mensagem “verdadeiro”, embora a mensagem “falso” fosse esperada. Isso ocorreu devido a

Alternativas
Comentários
  • $c = $a and $b; -> A precedência desta operação foi que $c = $a. PHP ignorou a operação do "AND"

    Para que seja atribuído o resultado da lógica $a and $b, eles precisam está em ().

    $c = ($a and $b) => echo $c ------ resultado será "false"

    Letra B.

  • Essa foi cruel

    "

    Watch out for the difference of priority between 'and vs &&' or '|| vs or':

    <?php

    $bool = true && false;

    var_dump($bool); // false, that's expected

    $bool = true and false;

    var_dump($bool); // true, ouch!

    ?>

    Because 'and/or' have lower priority than '=' but '||/&&' have higher.

    "

    fonte: https://www.php.net/manual/en/language.operators.precedence.php