Fazendo conversão entre tipos de dados em PHP

A conversão entre diferentes tipos de dados pode ser necessária quando se realiza operações aritméticas com variáveis. Elas podem ser realizadas por meio da função settype. O Código abaixo demonstra a conversão de tipo de alguns tipos apresentados no artigo “Um simples programa PHP“.

 

<?php print( '<?xml version = "1.0" encoding = "utf-8"?>' ) ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!-- Conversão entre tipos de dados. -->
<html xmlns = "http://www.w3.org/1999/xhtml">
   <head>
      <title>Conversão entre tipos de dados</title>
   </head>
   <body>
		<?php
			 // declara uma string, um double e um inteiro
			 $testString = "3.5 segundos";
			 $testDouble = 79.2;         
			 $testInteger = 12;     
		?><!-- fim do script PHP -->

      <!-- Imprime o valor e o tipo de cada da variável -->    
		<?php 
			 echo "$testString é um(a) " . gettype( $testString ) . "<br />" ;
			 echo "$testDouble é um(a) " . gettype( $testDouble ) . "<br />" ;
			 echo "$testInteger é um(a) " . gettype( $testInteger) . "<br />" ;
		?><!-- fim do script PHP --> 
      <br />
      convertendo para outros tipos de dados:<br />
		<?php 
			 // chama a função settype para converter a variável
			 // testString para diferentes tipos de dados
			 echo  "$testString";           
			 settype( $testString, "double" ); 
			 echo " como um double é $testString <br />" ;
			 echo "$testString";
			 settype( $testString, "integer" );
			 echo " como um inteiro é $testString <br />";
			 settype( $testString, "string" ); 
			 echo "convertendo de volta para uma string o resultado é $testString <br /><br />";
						
			 // usa conversão de tipos para converter variáveis para um tipo diferente 
			 $data = "98.6 graus";
			 echo "antes da conversão, $data é um " . gettype( $data ) . "<br /><br />";
			 echo "usuando a conversão de tipos temos: <br />
				como um double: " . (double) $data .    
				"<br />como um inteiro: " . (integer) $data;
			 echo "<br /><br />depois da conversão, $data é um " . gettype( $data );                                          
		?><!-- fim do script PHP -->
   </body>
</html>


	

Conversão de tipos de dados

As linhas 13-15 do código acima atribuem uma string à variável $testString, um número de ponto flutuante à variável $testDouble e um inteiro à variável $testInteger. As variáveis são automaticamente convertidas para o tipo do valor que recebem. Por exemplo, a variável $testString torna-se uma string quando recebe o valor “3.5 segundos”. As linhas 19-23 imprimem na tela por meio de um echo o valor de cada variável e seus tipos usando a função gettype, que retorna o tipo atual de seu argumento. Observe que, quando uma variável está em uma instrução echo, mas não faz parte de uma string, não é necessário delimitar o nome dela com aspas duplas. As linhas 31, 34 e 36 chamam settype para modificar o tipo de cada variável. A função settype recebe dois argumentos: a variável cujo tipo deve ser alterado e o novo tipo da variável.

A chamada da função settype pode resultar em perda de dados – doubles, por exemplo, são truncados quando convertidos para integers. Ao converter de uma string para um número, o PHP usa o valor do número que aparece no início da string, e caso não exista esse número, a string será avaliada como 0. Na linha 31, a string “3.5 segundos” é convertida para um double, armazenando 3.5 na variável $testString. Na linha 34, 3.5 é convertido para o integer 3. Quando convertemos essa variável para uma string (linha 36), o valor da variável torna-se “3” – a maior parte do conteúdo original da declaração da variável na linha 13 se perde.

Outra opção para converter entre tipos é o casting ou conversão de tipo. Diferentemente de settype, o casting não muda o conteúdo de uma variável, mas cria na memória uma cópia temporária do valor dela. As linha 42-43 convertem o valor da variável $data (declarada na linha 39) de um string para um double e um integer. O casting é útil quando um tipo diferente é exigido em uma operação específica, contudo, você deseja reter o valor e tipo originais da variável. As linhas 40-44 mostram que o tipo e o valor de $data permanecem inalterados mesmo depois de ela ter sido convertida várias vezes.

O operador de concatenação (.) combina múltiplas strings na mesma instrução echo, conforme demonstramos nas linhas 40-44. Na instrução echo também pode-se usar a vírgula (,) para concatenar múltiplas strings como demostrado na linha 40.

Referências

DEITEL, Paul; DEITEL, Harvey. Ajax, Rich Internet Applications e desenvolvimento Web para programadores. 1. ed. São Paulo: Pearson Prentice Hall, 2008. Cap. 19, p.463-464. Tradução: Célia Taniwaki e Daniel Vieira; Revisão técnica Daniel da Costa Uchôa.

Se inscrever
Notificar de
guest
0 Comentários
Comentários em linha
Exibir todos os comentários
0
Adoraria seus pensamentos, por favor, comente.x
Rolar para cima