Jesc Postado Março 10, 2008 Denunciar Share Postado Março 10, 2008 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.' </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>'; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MLeandroJr! Postado Março 10, 2008 Denunciar Share Postado Março 10, 2008 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.phphttp://www.php.net/manual/pt_BR/language.o...parison.ternaryO 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"; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jesc Postado Março 10, 2008 Autor Denunciar Share Postado Março 10, 2008 Ok! colega, entendi.A função retorna falso se o resto for zero e true se for 1. Mas zero não é um valor? porque que ele retorna false quando o resto é zero se zero é um inteiro? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MLeandroJr! Postado Março 10, 2008 Denunciar Share Postado Março 10, 2008 Porque aí é considerado número inteiro.Olhe este exemplo:9,47,0Nã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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jesc Postado Março 10, 2008 Autor Denunciar Share Postado Março 10, 2008 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jesc
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:
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.