Ir para conteúdo
Fórum Script Brasil
  • 0

Entenderdo script


Jesc

Pergunta

Bom dia a todos.

Vi esse exemplo de script abaixo, mas não entendi como ele informa se o valor é 'ímpar' ou 'par'.

Acho que estou com dúvida na concatenação-atribuição (.=).

Esse script mostra uma contagem de 1 a 10 informando se o numero é ímpar ou par:

<?php
 function imprime($numero){
   $str = '<br>'.$numero.'&nbsp;</b>';
   $str.= numero_impar($numero) ? 'impar' : 'par';
   return $str;
 }
 function numero_impar($numero){
   return $numero%2;
 }
 echo '<html> <head><title>Olá Mundo!</tilte></head><body>';

 for($i=1; $i<=10; $i++){
   $linha = imprime($i);
   echo $linha.'<br>';
 }
 echo '</body>
  </html>';


?>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Isso é feito juntando um operador de comparação ( % ) em uma função utilizando um operador ternário ( ? : ).

Você poderá ler mais em:

http://www.php.net/manual/pt_BR/language.o....arithmetic.php

http://www.php.net/manual/pt_BR/language.o...parison.ternary

O que faz ele descobrir se é par ou não é:

function numero_impar($numero){
   return $numero%2;
}
$numero%2 significa: Resto de $numero dividido por 2 O operador ternário entra aqui:
$str.= numero_impar($numero) ? 'impar' : 'par';
Que quer dizer: Se existir "Resto de $numero dividido por 2", é ímpar. Se não existir, é par. E pode ser montado também da seguinte maneira:
if (numero_impar($numero)){
$str .= "impar";
}
else {
$str .= "par";
}

Link para o comentário
Compartilhar em outros sites

  • 0

Porque aí é considerado número inteiro.

Olhe este exemplo:

9,4

7,0

Não podemos dizer que 9,4 seja igual a 9, portanto ele tem resto.

Podemos dizer que 7,0 = 7; Por isso 7 é número inteiro, não tem resto.

Ele utiliza a lógica básica da aritmética para fazer a comparação.

Link para o comentário
Compartilhar em outros sites

  • 0

Ok! Obrigado.

Tenho uma outra dúvida com outro pequeno script:

<HTML>
<HEAD>
 <TITLE>Documento PHP</TITLE>
</HEAD>
<BODY>
<?
  function Estatico(){
    static $conta = 0;
    $conta++;
    echo $conta;
    if($conta < 10){
     Estatico();
    }
    $conta--;
  }
  Estatico();
?>
</BODY>
</HTML>

O valor da variável static $conta não era pra receber sempre o valor zero quando o método Estatico() fosse chamado na recursividade?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...