If inline para PHP

Oki

Este simples recurso pode facilitar muito a vida de quem programa e economizar algumas dezenas de linhas de código.

[ Hits: 76.889 ]

Por: Celso Goya em 14/05/2003


Usando if inline para realizar operações matemáticas



Vamos utilizar um exemplo de paginador para mostrar como o if inline pode ajudar.

<?
$pg = isset($HTTP_GET_VARS['pg']) ? $pg = (int) $HTTP_GET_VARS['pg'] : 1;
?>
<table width='100%' border='0' cellspacing='1'>
<tr>
   <td>

      <table border="0" cellpadding="4" cellspacing="1" width="100%">
<?
      $resultsPerPage = 50;
      $maxPageNumbers = 10;
      $rows           = $database->countUsers();
      $countPages     = (($rows/$resultsPerPage)>1) ? ($rows/$resultsPerPage) : 1;
      $startPage      = (($pg+$maxPageNumbers) <= $countPages) ? $pg : ($countPages - $maxPageNumbers);
      $startPage      = ($startPage <= 1) ? 0 : $startPage;
      if( (($rows % $resultsPerPage) > 0)&&($countPages>1) ){
$countPages = $countPages+1;
}

      $result = $database->query (SELECT * FROM USERS WHERE CLUE = 1);

        while($fc_item = $database->fetchArray($result)) {
         echo "<tr>\n";
          echo "<td><a href='pagina.php'>".$fc_item["nome"]."</a></td>\n";
          echo "<td><a href='pagina.php'>".$fc_item["descricao"]."</a></td>\n";
         echo "</tr>\n";
      }
      if($countPages > 1){
         echo "<tr><td align='center' colspan='3'>\n";
          echo "<span class='fg2'>";
         echo ($pg > 0) ? "<a href='pagina_lista.php?pg=".($pg-1)."'>anterior</a>" : "";

         for($i= $startPage  ;( ($i<=$countPages)&&($i<=$startPage+$maxPageNumbers) );$i++){
            echo ($pg != $i) ? "<a href=' pagina_lista.php?pg=".($i)."'>".$i."</a>|" : $i;
         }
         echo ($pg < $countPages) ? "<a href=' pagina_lista.php?pg=".($pg+1)."'>próximo</a>" : "";
         echo "</spam>\n";
         echo "</td></tr>\n";
      }
?>
      </table>
</td></tr>
</table>

Bom, agora vamos nos atentar em alguns detalhes. Utilizei o if inline em três linhas onde são efetuados cálculos simples e na linha seguinte onde é um cálculo mais importante usei o if normal, pois queria chamar a atenção, principalmente dos próximos programadores que venham a modificar meu código.

Ainda tem dúvidas sobre o uso do if inline? Bom, se ainda lhe restarem dúvidas sobre o uso do if ou então não se sinta bem com isso ou então na empresa onde trabalha ninguém souber usar este recurso, sugiro que não o utilize, pois isso pode facilitar a sua vida, entretanto pode prejudicar o trabalho de outros programadores.

Nem sempre usar o código mais complexo significa que somos melhores programadores, o importante é construir códigos que quaisquer programadores sejam capazes de compreender.

header(application.terminate);
flush();

Celso Goya
Moinho.net

Se tiver dúvidas sobre o uso deste comando, e-mail-me-at celso.goya@moinho.net

Página anterior    

Páginas do artigo
   1. Introdução
   2. Usando o if inline para receber parâmetros de formulário
   3. Usando if inline para realizar operações matemáticas
Outros artigos deste autor

libpam-mount: a Solução para montagem de volumes SMB

Verificando a consistência de um formulário com JavaScript

Stream Ripper e Stream Tunner :: Capturando músicas de rádios online (SHOUTcast)

mplayer 1.0pre1 :: Instalando e configurando

Fedora Core 1 :: Internet Resources

Leitura recomendada

Gedit - Um bom editor pra programar em PHP!

Verdades e mentiras sobre tecnologias WEB

Renascendo na Programação

Xoops - Um ótimo gestor de portais em PHP

Ato 3 - Estrutura de Controle e Funções

  
Comentários
[1] Comentário enviado por oalexandrino em 16/05/2003 - 13:57h

Apesar de ser um recurso alternativo para programação. Na minha opnião fica um tanto quanto complicado para quem não utiliza essa característica.
Acarretando em dificuldade de compreensão de código.

Muita gente não conhece, mas exite outra alternativa bastante clara:

if ($a > $b):
$c = $b - $a;
else:
$c = 0;
endif;

ou na mesma linha,

if ($a > $b): $c = $b - $a; else: $c = 0; endif;

Podemos também ter um elseIF,

if ($a > $b):
$c = $b - $a;
elseif($a < $b):
$c = 1;
else:
$c = 0;
endif;

[2] Comentário enviado por Oki em 16/05/2003 - 16:46h

oalexandrino,
Eu prefiro utilizar o if com ? e :, pois ele usa a mesma sintaxe do JavaScript e do C e outras linguagens, mas sua sugestão é muito boa, pois usando as palavras if else e endif o código fica mais claro e para quem é mais leigo isso é muito importânte, entretanto ainda reforço que se o programador for iniciante ou estiver trabalhando em um grupo onde as pessoas não conhecem este recurso ao invés de ajudar podemos acabar atrapalhando.

Podemos resumir em: "Use com moderação" :-)

Obrigado por sua contribuição e sua dica já está na minha lista :-)

[]'s
Celso Goya
moinho.net

[3] Comentário enviado por asphp em 23/07/2003 - 18:25h

o veii eh fogo hauahuau, porra, chamaram-o de "?"(apenas interrogacao) agora chama de if inline, uahushauhsa eita meu!! eh o segundo comentario meu.. esse "?" ou if inline como vcs chamam, na verdade chama-se OPERADOR TERNÁRIO!!!!!

[4] Comentário enviado por joaocagnoni em 01/06/2008 - 19:12h

Pô amigo, aí na terceira página você fechou uma tag com "</spam>". Sem spam por favor hein, já recebo 1 monte hoje em dia...

[5] Comentário enviado por fabio em 05/12/2015 - 20:56h

Passados 12 anos da publicação, eis que procuro por "if inline em PHP" no Google para relembrar a sintaxe... cá estou! :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts