Introdução ao PHP
<p class=\"negrito\">07. Tipos</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Tipos Suportados</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP suporta os seguintes tipos de dados:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP utiliza checagem de tipos dinâmica, ou
seja, uma variável pode conter valores de diferentes tipos
em diferentes momentos da execução do script. Por
este motivo não é necessário declarar o tipo
de uma variável para usá-la. O interpretador PHP decidirá
qual o tipo daquela variável, verificando o conteúdo
em tempo de execução.</p>
<p align=\"JUSTIFY\">Ainda assim, é permitido converter os valores
de um tipo para outro desejado, utilizando o <span class=\"mysql\">typecasting</span>
ou a função <span class=\"mysql\">settype</span> (ver
adiante).</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Inteiros (integer ou long)</p>
<p align=\"JUSTIFY\">Uma variável pode conter um valor inteiro
com atribuições que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1234;	# inteiro
positivo na base decimal<br>
$vivas = -234;	# inteiro negativo na base decimal<br>
$vivas = 0234;	# inteiro na base octal-simbolizado pelo 0 equivale
a 156 decimal<br>
$vivas = 0x34;	# inteiro na base hexadecimal(simbolizado pelo
0x) – equivale a 52 decimal.</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A diferença entre inteiros simples e <font face=\"Courier New\" size=3>long</font>
está no número de bytes utilizados para armazenar
a variável. Como a escolha é feita pelo interpretador
PHP de maneira transparente para o usuário, podemos afirmar
que os tipos são iguais.</p>
<p align=\"JUSTIFY\">Números em Ponto Flutuante (double ou
float)</p>
<p align=\"JUSTIFY\">Uma variável pode ter um valor em ponto
flutuante com atribuições que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1.234;<br>
$vivas = 23e4;	# equivale a 230.000</span></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Strings</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Strings podem ser atribuídas de duas maneiras:</p>
<p align=\"JUSTIFY\"></p>
<ol type=\"a\">
<p align=\"JUSTIFY\">
utilizando aspas simples ( \' ) – Desta maneira, o valor da variável
será exatamente o texto contido entre as aspas (com exceção
de \\\\ e \\\' – ver tabela abaixo)
<p></p>
<p align=\"JUSTIFY\">
utilizando aspas duplas ( \" ) – Desta maneira, qualquer variável
ou caracter de escape será expandido antes de ser atribuído.
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$teste = \"Mauricio\";<br>
$vivas = \'---$teste--\\n\';<br>
echo \"$vivas\";<br>
?></span></p>
<p align=\"JUSTIFY\">A saída desse script será \"---$teste--\\n\".</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$teste = \"Mauricio\";<br>
$vivas = \"---$teste---\\n\";<br>
echo \"$vivas\";<br>
?></span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A saída desse script será \"---Mauricio--\"
(com uma quebra de linha no final).</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A tabela seguinte lista os caracteres de escape:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"CENTER\">
<center>
<table BORDER cellspacing=0 cellpadding=1 width=313>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Sintaxe
</td>
<td width=\"78%\" valign=\"TOP\">
<p>Significado
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\n
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Nova linha
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\r
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Retorno de carro (semelhante a \\n)
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\t
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Tabulação horizontal
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\\\
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">A própria barra ( \\ )
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\$
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">O símbolo $
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\’
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Aspa simples
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\"
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Aspa dupla
</td>
</tr>
</table>
</center>
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">No apêndice 01 está disponível
uma lista das funções utilizadas no tratamento de
strings.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Arrays</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Arrays em PHP podem ser observados como mapeamentos
ou como vetores indexados. Mais precisamente, um valor do tipo array
é um dicionário onde os índices são
as chaves de acesso. Vale ressaltar que os índices podem
ser valores de qualquer tipo e não somente inteiros. Inclusive,
se os índices forem todos inteiros, estes não precisam
formar um intervalo contínuo</p>
<p align=\"JUSTIFY\">Como a checagem de tipos em PHP é dinâmica,
valores de tipos diferentes podem ser usados como índices
de array, assim como os valores mapeados também podem ser
de diversos tipos.</p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$cor[1] = "vermelho";<br>
$cor[2] = "verde";<br>
$cor[3] = "azul";<br>
$cor["teste"] = 1;<br>
?></span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Equivalentemente, pode-se escrever:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
$cor = array(1 => "vermelho, 2 => "verde, 3 =>
"azul", "teste => 1);<br>
?></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><a name=\"_Toc485214772\">Listas</a></p>
<p align=\"JUSTIFY\">As listas são utilizadas em PHP para realizar
atribuições múltiplas. Através de listas
é possível atribuir valores que estão num array
para variáveis. Vejamos o exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"> list($a, $b, $c) = array("a",
"b", "c");</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O comando acima atribui valores às três
variáveis simultaneamente. É bom notar que só
são atribuídos às variáveis da lista
os elemsentos do array que possuem índices inteiros e não
negativos. No exemplo acima as três atribuições
foram bem sucedidas porque ao inicializar um array sem especificar
os índices eles passam a ser inteiros, a partir do zero.
Um fator importante é que cada variável da lista possui
um índice inteiro e ordinal, iniciando com zero, que serve
para determinar qual valor será atribuído. No exemplo
anterior temos $a com índice 0, $b com índice 1 e
$c com índice 2. Vejamos um outro exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$arr = array(1=>"um",3=>"tres","a"=>"letraA",2=>"dois);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">list($a,$b,$c,$d) = $arr;</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Após a execução do código
acima temos os seguintes valores:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$a == null<br>
$b == "um"<br>
$c == "dois"<br>
$d == "tres"</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Devemos observar que à variável $a
não foi atribuído valor, pois no array não
existe elemento com índice 0 (zero). Outro detalhe importante
é que o valor "tres" foi atribuído à
variável $d, e não a $b, pois seu índice é
3, o mesmo que $d na lista. Por fim, vemos que o valor "letraA"
não foi atribuído a elemento algum da lista pois seu
índice não é inteiro.</p>
<p align=\"JUSTIFY\">Os índices da lista servem apenas como referência
ao interpretador PHP para realizar as atribuições,
não podendo ser acessados de maneira alguma pelo programador.
De maneira diferente do array, uma lista não pode ser atribuída
a uma variável, servindo apenas para fazer múltiplas
atribuições através de um array.</p>
<p align=\"JUSTIFY\">No apêndice 02 está disponível
uma lista das funções mais comuns para o tratamento
de arrays.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Objetos</p>
<p align=\"JUSTIFY\">Um objeto pode ser inicializado utilizando o comando
new para instanciar uma classe para uma variável.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
class teste {</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"> function nada()
{<br>
echo "nada";<br>
}<br>
}</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = new teste;<br>
$vivas -> nada();<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A utilização de objetos será
mais detalhada mais à frente.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Booleanos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP não possui um tipo booleano, mas é
capaz de avaliar expressões e retornar true ou false,
através do tipo integer: é usado o valor 0
(zero) para representar o estado false, e qualquer valor
diferente de zero (geralmente 1) para representar o estado true.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Transformação de tipos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A transformação de tipos em PHP pode
ser feita das seguintes maneiras:</p>
<p align=\"JUSTIFY\">Coerções</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Quando ocorrem determinadas operações
("+", por exemplo) entre dois valores de tipos diferentes,
o PHP converte o valor de um deles automaticamente (coerção).
É interessante notar que se o operando for uma variável,
seu valor não será alterado. </p>
<p align=\"JUSTIFY\">O tipo para o qual os valores dos operandos serão
convertidos é determinado da seguinte forma: Se um dos operandos
for float, o outro será convertido para float,
senão, se um deles for integer, o outro será
convertido para integer.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = "1";		// $vivas é a string "1"<br>
$vivas = $vivas + 1;	// $vivas é o integer 2<br>
$vivas = $vivas + 3.7;// $vivas é o double 5.7<br>
$vivas = 1 + 1.5		// $vivas é o double 2.5<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Como podemos notar, o PHP converte string
para integer ou double mantendo o valor. O sistema
utilizado pelo PHP para converter de strings para números
é o seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplos:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 1 + "10.5";		// $vivas == 11.5<br>
$vivas = 1 + "-1.3e3";	// $vivas == -1299<br>
$vivas = 1 + "teste10.5";	// $vivas == 1<br>
$vivas = 1 + "10testes";	// $vivas == 11<br>
$vivas = 1 + \" 10testes\";	// $vivas == 11<br>
$vivas = 1 + \"+ 10testes\";	// $vivas == 1<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Transformação explícita
de tipos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A sintaxe do typecast de PHP é semelhante
ao C: basta escrever o tipo entre parenteses antes do valor</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 15;			// $vivas é integer (15)<br>
$vivas = (double) $vivas	// $vivas é double (15.0)<br>
$vivas = 3.9			// $vivas é double (3.9)<br>
$vivas = (int) $vivas	// $vivas é integer (3)<br>
// o valor decimal é truncado<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Os tipos de cast permitidos são:</p>
<p align=\"JUSTIFY\">(int), (integer)		<font face=\"Symbol\">Þ</font>
muda para integer;</p>
<p align=\"JUSTIFY\">(real), (double), (float)	<font face=\"Symbol\">Þ</font>
muda para float;</p>
<p align=\"JUSTIFY\">(string)			<font face=\"Symbol\">Þ</font>
muda para string;</p>
<p align=\"JUSTIFY\">(array)			<font face=\"Symbol\">Þ</font>
muda para array;</p>
<p align=\"JUSTIFY\">(object)			<font face=\"Symbol\">Þ</font>
muda para objeto.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Com a função settype</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função settype converte
uma variável para o tipo especificado, que pode ser "integer",
"double", "string", "array" ou "object".</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 15;			// $vivas é integer<br>
settype($vivas,double)	// $vivas é double<br>
?> </span></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Tipos Suportados</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP suporta os seguintes tipos de dados:</p>
- Inteiro
- Ponto flutuante
- String
- Array
- Objeto
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP utiliza checagem de tipos dinâmica, ou
seja, uma variável pode conter valores de diferentes tipos
em diferentes momentos da execução do script. Por
este motivo não é necessário declarar o tipo
de uma variável para usá-la. O interpretador PHP decidirá
qual o tipo daquela variável, verificando o conteúdo
em tempo de execução.</p>
<p align=\"JUSTIFY\">Ainda assim, é permitido converter os valores
de um tipo para outro desejado, utilizando o <span class=\"mysql\">typecasting</span>
ou a função <span class=\"mysql\">settype</span> (ver
adiante).</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Inteiros (integer ou long)</p>
<p align=\"JUSTIFY\">Uma variável pode conter um valor inteiro
com atribuições que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1234;	# inteiro
positivo na base decimal<br>
$vivas = -234;	# inteiro negativo na base decimal<br>
$vivas = 0234;	# inteiro na base octal-simbolizado pelo 0 equivale
a 156 decimal<br>
$vivas = 0x34;	# inteiro na base hexadecimal(simbolizado pelo
0x) – equivale a 52 decimal.</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A diferença entre inteiros simples e <font face=\"Courier New\" size=3>long</font>
está no número de bytes utilizados para armazenar
a variável. Como a escolha é feita pelo interpretador
PHP de maneira transparente para o usuário, podemos afirmar
que os tipos são iguais.</p>
<p align=\"JUSTIFY\">Números em Ponto Flutuante (double ou
float)</p>
<p align=\"JUSTIFY\">Uma variável pode ter um valor em ponto
flutuante com atribuições que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1.234;<br>
$vivas = 23e4;	# equivale a 230.000</span></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Strings</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Strings podem ser atribuídas de duas maneiras:</p>
<p align=\"JUSTIFY\"></p>
<ol type=\"a\">
<p align=\"JUSTIFY\">
será exatamente o texto contido entre as aspas (com exceção
de \\\\ e \\\' – ver tabela abaixo)
<p></p>
<p align=\"JUSTIFY\">
ou caracter de escape será expandido antes de ser atribuído.
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$teste = \"Mauricio\";<br>
$vivas = \'---$teste--\\n\';<br>
echo \"$vivas\";<br>
?></span></p>
<p align=\"JUSTIFY\">A saída desse script será \"---$teste--\\n\".</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$teste = \"Mauricio\";<br>
$vivas = \"---$teste---\\n\";<br>
echo \"$vivas\";<br>
?></span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A saída desse script será \"---Mauricio--\"
(com uma quebra de linha no final).</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A tabela seguinte lista os caracteres de escape:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"CENTER\">
<center>
<table BORDER cellspacing=0 cellpadding=1 width=313>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Sintaxe
</td>
<td width=\"78%\" valign=\"TOP\">
<p>Significado
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\n
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Nova linha
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\r
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Retorno de carro (semelhante a \\n)
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\t
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Tabulação horizontal
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\\\
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">A própria barra ( \\ )
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\$
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">O símbolo $
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\’
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Aspa simples
</td>
</tr>
<tr>
<td width=\"22%\" valign=\"TOP\">
<p align=\"JUSTIFY\">\\"
</td>
<td width=\"78%\" valign=\"TOP\">
<p align=\"JUSTIFY\">Aspa dupla
</td>
</tr>
</table>
</center>
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">No apêndice 01 está disponível
uma lista das funções utilizadas no tratamento de
strings.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Arrays</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Arrays em PHP podem ser observados como mapeamentos
ou como vetores indexados. Mais precisamente, um valor do tipo array
é um dicionário onde os índices são
as chaves de acesso. Vale ressaltar que os índices podem
ser valores de qualquer tipo e não somente inteiros. Inclusive,
se os índices forem todos inteiros, estes não precisam
formar um intervalo contínuo</p>
<p align=\"JUSTIFY\">Como a checagem de tipos em PHP é dinâmica,
valores de tipos diferentes podem ser usados como índices
de array, assim como os valores mapeados também podem ser
de diversos tipos.</p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$cor[1] = "vermelho";<br>
$cor[2] = "verde";<br>
$cor[3] = "azul";<br>
$cor["teste"] = 1;<br>
?></span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Equivalentemente, pode-se escrever:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
$cor = array(1 => "vermelho, 2 => "verde, 3 =>
"azul", "teste => 1);<br>
?></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><a name=\"_Toc485214772\">Listas</a></p>
<p align=\"JUSTIFY\">As listas são utilizadas em PHP para realizar
atribuições múltiplas. Através de listas
é possível atribuir valores que estão num array
para variáveis. Vejamos o exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"> list($a, $b, $c) = array("a",
"b", "c");</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O comando acima atribui valores às três
variáveis simultaneamente. É bom notar que só
são atribuídos às variáveis da lista
os elemsentos do array que possuem índices inteiros e não
negativos. No exemplo acima as três atribuições
foram bem sucedidas porque ao inicializar um array sem especificar
os índices eles passam a ser inteiros, a partir do zero.
Um fator importante é que cada variável da lista possui
um índice inteiro e ordinal, iniciando com zero, que serve
para determinar qual valor será atribuído. No exemplo
anterior temos $a com índice 0, $b com índice 1 e
$c com índice 2. Vejamos um outro exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$arr = array(1=>"um",3=>"tres","a"=>"letraA",2=>"dois);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">list($a,$b,$c,$d) = $arr;</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Após a execução do código
acima temos os seguintes valores:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$a == null<br>
$b == "um"<br>
$c == "dois"<br>
$d == "tres"</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Devemos observar que à variável $a
não foi atribuído valor, pois no array não
existe elemento com índice 0 (zero). Outro detalhe importante
é que o valor "tres" foi atribuído à
variável $d, e não a $b, pois seu índice é
3, o mesmo que $d na lista. Por fim, vemos que o valor "letraA"
não foi atribuído a elemento algum da lista pois seu
índice não é inteiro.</p>
<p align=\"JUSTIFY\">Os índices da lista servem apenas como referência
ao interpretador PHP para realizar as atribuições,
não podendo ser acessados de maneira alguma pelo programador.
De maneira diferente do array, uma lista não pode ser atribuída
a uma variável, servindo apenas para fazer múltiplas
atribuições através de um array.</p>
<p align=\"JUSTIFY\">No apêndice 02 está disponível
uma lista das funções mais comuns para o tratamento
de arrays.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Objetos</p>
<p align=\"JUSTIFY\">Um objeto pode ser inicializado utilizando o comando
new para instanciar uma classe para uma variável.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
class teste {</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"> function nada()
{<br>
echo "nada";<br>
}<br>
}</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = new teste;<br>
$vivas -> nada();<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A utilização de objetos será
mais detalhada mais à frente.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Booleanos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP não possui um tipo booleano, mas é
capaz de avaliar expressões e retornar true ou false,
através do tipo integer: é usado o valor 0
(zero) para representar o estado false, e qualquer valor
diferente de zero (geralmente 1) para representar o estado true.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Transformação de tipos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A transformação de tipos em PHP pode
ser feita das seguintes maneiras:</p>
<p align=\"JUSTIFY\">Coerções</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Quando ocorrem determinadas operações
("+", por exemplo) entre dois valores de tipos diferentes,
o PHP converte o valor de um deles automaticamente (coerção).
É interessante notar que se o operando for uma variável,
seu valor não será alterado. </p>
<p align=\"JUSTIFY\">O tipo para o qual os valores dos operandos serão
convertidos é determinado da seguinte forma: Se um dos operandos
for float, o outro será convertido para float,
senão, se um deles for integer, o outro será
convertido para integer.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = "1";		// $vivas é a string "1"<br>
$vivas = $vivas + 1;	// $vivas é o integer 2<br>
$vivas = $vivas + 3.7;// $vivas é o double 5.7<br>
$vivas = 1 + 1.5		// $vivas é o double 2.5<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Como podemos notar, o PHP converte string
para integer ou double mantendo o valor. O sistema
utilizado pelo PHP para converter de strings para números
é o seguinte:</p>
- É analisado o início da string. Se contiver
um número, ele será avaliado. Senão, o
valor será 0 (zero); - O número pode conter um sinal no início ("+"
ou "-"); - Se a string contiver um ponto em sua parte numérica
a ser analisada, ele será considerado, e o valor obtido
será double; - Se a string contiver um "e" ou "E"
em sua parte numérica a ser analisada, o valor seguinte
será considerado como expoente da base 10, e o valor
obtido será double;
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\">
<p></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplos:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 1 + "10.5";		// $vivas == 11.5<br>
$vivas = 1 + "-1.3e3";	// $vivas == -1299<br>
$vivas = 1 + "teste10.5";	// $vivas == 1<br>
$vivas = 1 + "10testes";	// $vivas == 11<br>
$vivas = 1 + \" 10testes\";	// $vivas == 11<br>
$vivas = 1 + \"+ 10testes\";	// $vivas == 1<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Transformação explícita
de tipos</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A sintaxe do typecast de PHP é semelhante
ao C: basta escrever o tipo entre parenteses antes do valor</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 15;			// $vivas é integer (15)<br>
$vivas = (double) $vivas	// $vivas é double (15.0)<br>
$vivas = 3.9			// $vivas é double (3.9)<br>
$vivas = (int) $vivas	// $vivas é integer (3)<br>
// o valor decimal é truncado<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Os tipos de cast permitidos são:</p>
<p align=\"JUSTIFY\">(int), (integer)		<font face=\"Symbol\">Þ</font>
muda para integer;</p>
<p align=\"JUSTIFY\">(real), (double), (float)	<font face=\"Symbol\">Þ</font>
muda para float;</p>
<p align=\"JUSTIFY\">(string)			<font face=\"Symbol\">Þ</font>
muda para string;</p>
<p align=\"JUSTIFY\">(array)			<font face=\"Symbol\">Þ</font>
muda para array;</p>
<p align=\"JUSTIFY\">(object)			<font face=\"Symbol\">Þ</font>
muda para objeto.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Com a função settype</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função settype converte
uma variável para o tipo especificado, que pode ser "integer",
"double", "string", "array" ou "object".</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Exemplo:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$vivas = 15;			// $vivas é integer<br>
settype($vivas,double)	// $vivas é double<br>
?> </span></p>
Alguem descobriu onde baixar esse tutorial???
02/09/2008 8:57am
(~16 anos atrás)
Estou procurando a dias esse arquivos PDF com as imagens, pois não estou encontrando o arquivo completo, quero imprimir isso.
Obriado.
Obriado.
28/06/2007 5:30am
(~17 anos atrás)
Não consigo fazer o download através do link (http://phpbrasil.com/click.php?send=http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf).
01/06/2006 5:22am
(~18 anos atrás)
tentei no passado aprender por apostila,
mais livros ajudar muito ,em especial aquele que envolver o leitor num projeto.
esse tipo de trabalho ou livro são excelente ajuda : mais legal pela iniciativa
25/11/2005 10:32am
(~19 anos atrás)
As imagens não estão aparecendo e tentei acessar o site do autor, mas também não funciona.
Alguém tem disponível para download?
Alguém tem disponível para download?
24/06/2005 7:06pm
(~19 anos atrás)
dizem q a primeira impreção é a q fica,
axei bastante intuitivo.
:)
axei bastante intuitivo.
:)
24/04/2005 11:56pm
(~19 anos atrás)
Galera, quem estiver afim de baixar o tutorial é só acessar o seguinte link
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf
Té +
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf
Té +
11/03/2005 7:31pm
(~19 anos atrás)