+5

Introdução ao PHP

criado por João Prado Maia em 25/01/2001 6:32pm
<p class=\"negrito\">07. Tipos</p>
<p align=\"JUSTIFY\">&nbsp;</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\">
  • Inteiro

  • <p></p>
    <p align=\"JUSTIFY\">
  • Ponto flutuante

  • <p></p>
    <p align=\"JUSTIFY\">
  • String

  • <p></p>
    <p align=\"JUSTIFY\">
  • Array

  • <p></p>
    <p align=\"JUSTIFY\">
  • Objeto

  • <p></p>

<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">PHP utiliza checagem de tipos din&acirc;mica, ou
seja, uma vari&aacute;vel pode conter valores de diferentes tipos
em diferentes momentos da execu&ccedil;&atilde;o do script. Por
este motivo n&atilde;o &eacute; necess&aacute;rio declarar o tipo
de uma vari&aacute;vel para us&aacute;-la. O interpretador PHP decidir&aacute;
qual o tipo daquela vari&aacute;vel, verificando o conte&uacute;do
em tempo de execu&ccedil;&atilde;o.</p>
<p align=\"JUSTIFY\">Ainda assim, &eacute; permitido converter os valores
de um tipo para outro desejado, utilizando o <span class=\"mysql\">typecasting</span>
ou a fun&ccedil;&atilde;o <span class=\"mysql\">settype</span> (ver
adiante).</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Inteiros (integer ou long)</p>
<p align=\"JUSTIFY\">Uma vari&aacute;vel pode conter um valor inteiro
com atribui&ccedil;&otilde;es que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1234;&#9;# inteiro
positivo na base decimal<br>
$vivas = -234;&#9;# inteiro negativo na base decimal<br>
$vivas = 0234;&#9;# inteiro na base octal-simbolizado pelo 0 equivale
a 156 decimal<br>
$vivas = 0x34;&#9;# inteiro na base hexadecimal(simbolizado pelo
0x) – equivale a 52 decimal.</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A diferen&ccedil;a entre inteiros simples e <font face=\"Courier New\" size=3>long</font>
est&aacute; no n&uacute;mero de bytes utilizados para armazenar
a vari&aacute;vel. Como a escolha &eacute; feita pelo interpretador
PHP de maneira transparente para o usu&aacute;rio, podemos afirmar
que os tipos s&atilde;o iguais.</p>
<p align=\"JUSTIFY\">N&uacute;meros em Ponto Flutuante (double ou
float)
</p>
<p align=\"JUSTIFY\">Uma vari&aacute;vel pode ter um valor em ponto
flutuante com atribui&ccedil;&otilde;es que sigam as seguintes sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = 1.234;<br>
$vivas = 23e4;&#9;# equivale a 230.000</span></p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Strings</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Strings podem ser atribu&iacute;das de duas maneiras:</p>
<p align=\"JUSTIFY\"></p>
<ol type=\"a\">
<p align=\"JUSTIFY\">
  • utilizando aspas simples ( \' ) – Desta maneira, o valor da vari&aacute;vel
    ser&aacute; exatamente o texto contido entre as aspas (com exce&ccedil;&atilde;o
    de \\\\ e \\\' – ver tabela abaixo)

  • <p></p>
    <p align=\"JUSTIFY\">
  • utilizando aspas duplas ( \" ) – Desta maneira, qualquer vari&aacute;vel
    ou caracter de escape ser&aacute; expandido antes de ser atribu&iacute;do.

  • <p></p>

    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $teste = \"Mauricio\";<br>
    $vivas = \'---$teste--\\n\';<br>
    echo \"$vivas\";<br>
    ?&gt;</span></p>
    <p align=\"JUSTIFY\">A sa&iacute;da desse script ser&aacute; \"---$teste--\\n\".</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $teste = \"Mauricio\";<br>
    $vivas = \"---$teste---\\n\";<br>
    echo \"$vivas\";<br>
    ?&gt;</span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">A sa&iacute;da desse script ser&aacute; \"---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&ccedil;&atilde;o horizontal
    </td>
    </tr>
    <tr>
    <td width=\"22%\" valign=\"TOP\">
    <p align=\"JUSTIFY\">\\\\
    </td>
    <td width=\"78%\" valign=\"TOP\">
    <p align=\"JUSTIFY\">A pr&oacute;pria barra ( \\ )
    </td>
    </tr>
    <tr>
    <td width=\"22%\" valign=\"TOP\">
    <p align=\"JUSTIFY\">\\$
    </td>
    <td width=\"78%\" valign=\"TOP\">
    <p align=\"JUSTIFY\">O s&iacute;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\">\\&quot;
    </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&ecirc;ndice 01 est&aacute; dispon&iacute;vel
    uma lista das fun&ccedil;&otilde;es utilizadas no tratamento de
    strings.</p>
    <p align=\"JUSTIFY\">&nbsp;</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
    &eacute; um dicion&aacute;rio onde os &iacute;ndices s&atilde;o
    as chaves de acesso. Vale ressaltar que os &iacute;ndices podem
    ser valores de qualquer tipo e n&atilde;o somente inteiros. Inclusive,
    se os &iacute;ndices forem todos inteiros, estes n&atilde;o precisam
    formar um intervalo cont&iacute;nuo</p>
    <p align=\"JUSTIFY\">Como a checagem de tipos em PHP &eacute; din&acirc;mica,
    valores de tipos diferentes podem ser usados como &iacute;ndices
    de array, assim como os valores mapeados tamb&eacute;m podem ser
    de diversos tipos.</p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $cor[1] = &quot;vermelho&quot;;<br>
    $cor[2] = &quot;verde&quot;;<br>
    $cor[3] = &quot;azul&quot;;<br>
    $cor[&quot;teste&quot;] = 1;<br>
    ?&gt;</span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Equivalentemente, pode-se escrever:</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\" class=\"mysql\">&lt;?php<br>
    $cor = array(1 =&gt; &quot;vermelho, 2 =&gt; &quot;verde, 3 =&gt;
    &quot;azul&quot;, &quot;teste =&gt; 1);<br>
    ?&gt;</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\"><a name=\"_Toc485214772\">Listas</a></p>
    <p align=\"JUSTIFY\">As listas s&atilde;o utilizadas em PHP para realizar
    atribui&ccedil;&otilde;es m&uacute;ltiplas. Atrav&eacute;s de listas
    &eacute; poss&iacute;vel atribuir valores que est&atilde;o num array
    para vari&aacute;veis. Vejamos o exemplo:</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">&nbsp;</p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\" class=\"mysql\"> list($a, $b, $c) = array(&quot;a&quot;,
    &quot;b&quot;, &quot;c&quot;);</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">O comando acima atribui valores &agrave;s tr&ecirc;s
    vari&aacute;veis simultaneamente. &Eacute; bom notar que s&oacute;
    s&atilde;o atribu&iacute;dos &agrave;s vari&aacute;veis da lista
    os elemsentos do array que possuem &iacute;ndices inteiros e n&atilde;o
    negativos. No exemplo acima as tr&ecirc;s atribui&ccedil;&otilde;es
    foram bem sucedidas porque ao inicializar um array sem especificar
    os &iacute;ndices eles passam a ser inteiros, a partir do zero.
    Um fator importante &eacute; que cada vari&aacute;vel da lista possui
    um &iacute;ndice inteiro e ordinal, iniciando com zero, que serve
    para determinar qual valor ser&aacute; atribu&iacute;do. No exemplo
    anterior temos $a com &iacute;ndice 0, $b com &iacute;ndice 1 e
    $c com &iacute;ndice 2. Vejamos um outro exemplo:</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">$arr = array(1=&gt;&quot;um&quot;,3=&gt;&quot;tres&quot;,&quot;a&quot;=&gt;&quot;letraA&quot;,2=&gt;&quot;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&oacute;s a execu&ccedil;&atilde;o do c&oacute;digo
    acima temos os seguintes valores:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">$a == null<br>
    $b == &quot;um&quot;<br>
    $c == &quot;dois&quot;<br>
    $d == &quot;tres&quot;</span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Devemos observar que &agrave; vari&aacute;vel $a
    n&atilde;o foi atribu&iacute;do valor, pois no array n&atilde;o
    existe elemento com &iacute;ndice 0 (zero). Outro detalhe importante
    &eacute; que o valor &quot;tres&quot; foi atribu&iacute;do &agrave;
    vari&aacute;vel $d, e n&atilde;o a $b, pois seu &iacute;ndice &eacute;
    3, o mesmo que $d na lista. Por fim, vemos que o valor &quot;letraA&quot;
    n&atilde;o foi atribu&iacute;do a elemento algum da lista pois seu
    &iacute;ndice n&atilde;o &eacute; inteiro.</p>
    <p align=\"JUSTIFY\">Os &iacute;ndices da lista servem apenas como refer&ecirc;ncia
    ao interpretador PHP para realizar as atribui&ccedil;&otilde;es,
    n&atilde;o podendo ser acessados de maneira alguma pelo programador.
    De maneira diferente do array, uma lista n&atilde;o pode ser atribu&iacute;da
    a uma vari&aacute;vel, servindo apenas para fazer m&uacute;ltiplas
    atribui&ccedil;&otilde;es atrav&eacute;s de um array.</p>
    <p align=\"JUSTIFY\">No ap&ecirc;ndice 02 est&aacute; dispon&iacute;vel
    uma lista das fun&ccedil;&otilde;es mais comuns para o tratamento
    de arrays.</p>
    <p align=\"JUSTIFY\">&nbsp;</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&aacute;vel.</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    class teste {</span></p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&nbsp;&nbsp;function nada()
    {<br>
    &nbsp;&nbsp; echo &quot;nada&quot;;<br>
    &nbsp; }<br>
    }</span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">$vivas = new teste;<br>
    $vivas -&gt; nada();<br>
    ?&gt; </span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">A utiliza&ccedil;&atilde;o de objetos ser&aacute;
    mais detalhada mais &agrave; frente.</p>
    <p align=\"JUSTIFY\">&nbsp;</p>
    <p align=\"JUSTIFY\">Booleanos</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">PHP n&atilde;o possui um tipo booleano, mas &eacute;
    capaz de avaliar express&otilde;es e retornar true ou false,
    atrav&eacute;s do tipo integer: &eacute; 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\">&nbsp;</p>
    <p align=\"JUSTIFY\">Transforma&ccedil;&atilde;o de tipos</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">A transforma&ccedil;&atilde;o de tipos em PHP pode
    ser feita das seguintes maneiras:</p>
    <p align=\"JUSTIFY\">Coer&ccedil;&otilde;es</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Quando ocorrem determinadas opera&ccedil;&otilde;es
    (&quot;+&quot;, por exemplo) entre dois valores de tipos diferentes,
    o PHP converte o valor de um deles automaticamente (coer&ccedil;&atilde;o).
    &Eacute; interessante notar que se o operando for uma vari&aacute;vel,
    seu valor n&atilde;o ser&aacute; alterado. </p>
    <p align=\"JUSTIFY\">O tipo para o qual os valores dos operandos ser&atilde;o
    convertidos &eacute; determinado da seguinte forma: Se um dos operandos
    for float, o outro ser&aacute; convertido para float,
    sen&atilde;o, se um deles for integer, o outro ser&aacute;
    convertido para integer.</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $vivas = &quot;1&quot;;&#9;&#9;// $vivas &eacute; a string &quot;1&quot;<br>
    $vivas = $vivas + 1;&#9;// $vivas &eacute; o integer 2<br>
    $vivas = $vivas + 3.7;// $vivas &eacute; o double 5.7<br>
    $vivas = 1 + 1.5&#9;&#9;// $vivas &eacute; o double 2.5<br>
    ?&gt; </span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">&nbsp;</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&uacute;meros
    &eacute; o seguinte:</p>


        <p align=\"JUSTIFY\">
      • &Eacute; analisado o in&iacute;cio da string. Se contiver
        um n&uacute;mero, ele ser&aacute; avaliado. Sen&atilde;o, o
        valor ser&aacute; 0 (zero);

      • <p></p>
        <p align=\"JUSTIFY\">
      • O n&uacute;mero pode conter um sinal no in&iacute;cio (&quot;+&quot;
        ou &quot;-&quot;);

      • <p></p>
        <p align=\"JUSTIFY\">
      • Se a string contiver um ponto em sua parte num&eacute;rica
        a ser analisada, ele ser&aacute; considerado, e o valor obtido
        ser&aacute; double;

      • <p></p>
        <p align=\"JUSTIFY\">
      • Se a string contiver um &quot;e&quot; ou &quot;E&quot;
        em sua parte num&eacute;rica a ser analisada, o valor seguinte
        ser&aacute; considerado como expoente da base 10, e o valor
        obtido ser&aacute; double;

      • <p></p>


    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Exemplos:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $vivas = 1 + &quot;10.5&quot;;&#9;&#9;// $vivas == 11.5<br>
    $vivas = 1 + &quot;-1.3e3&quot;;&#9;// $vivas == -1299<br>
    $vivas = 1 + &quot;teste10.5&quot;;&#9;// $vivas == 1<br>
    $vivas = 1 + &quot;10testes&quot;;&#9;// $vivas == 11<br>
    $vivas = 1 + \" 10testes\";&#9;// $vivas == 11<br>
    $vivas = 1 + \"+ 10testes\";&#9;// $vivas == 1<br>
    ?&gt; </span></p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">&nbsp;</p>
    <p align=\"JUSTIFY\">Transforma&ccedil;&atilde;o expl&iacute;cita
    de tipos
    </p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">A sintaxe do typecast de PHP &eacute; 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\">&lt;?php<br>
    $vivas = 15;&#9;&#9;&#9;// $vivas &eacute; integer (15)<br>
    $vivas = (double) $vivas&#9;// $vivas &eacute; double (15.0)<br>
    $vivas = 3.9&#9;&#9;&#9;// $vivas &eacute; double (3.9)<br>
    $vivas = (int) $vivas&#9;// $vivas &eacute; integer (3)<br>
    // o valor decimal &eacute; truncado<br>
    ?&gt; </span></p>
    <p align=\"JUSTIFY\"></p>

    <p align=\"JUSTIFY\">Os tipos de cast permitidos s&atilde;o:</p>
    <p align=\"JUSTIFY\">(int), (integer)&#9;&#9;<font face=\"Symbol\">&#222;</font>
    muda para integer;</p>
    <p align=\"JUSTIFY\">(real), (double), (float)&#9;<font face=\"Symbol\">&#222;</font>
    muda para float;</p>
    <p align=\"JUSTIFY\">(string)&#9;&#9;&#9;<font face=\"Symbol\">&#222;</font>
    muda para string;</p>
    <p align=\"JUSTIFY\">(array)&#9;&#9;&#9;<font face=\"Symbol\">&#222;</font>
    muda para array;</p>
    <p align=\"JUSTIFY\">(object)&#9;&#9;&#9;<font face=\"Symbol\">&#222;</font>
    muda para objeto.</p>
    <p align=\"JUSTIFY\">&nbsp;</p>
    <p align=\"JUSTIFY\">Com a fun&ccedil;&atilde;o settype</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">A fun&ccedil;&atilde;o settype converte
    uma vari&aacute;vel para o tipo especificado, que pode ser &quot;integer&quot;,
    &quot;double&quot;, &quot;string&quot;, &quot;array&quot; ou &quot;object&quot;.</p>
    <p align=\"JUSTIFY\"></p>
    <p align=\"JUSTIFY\">Exemplo:</p>
    <p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
    $vivas = 15;&#9;&#9;&#9;// $vivas &eacute; integer<br>
    settype($vivas,double)&#9;// $vivas &eacute; double<br>
    ?&gt; </span></p>

    Comentários:

    Mostrando 1 - 10 de 19 comentários
    Alguem descobriu onde baixar esse tutorial???
    02/09/2008 8:57am (~16 anos atrás)

    Como baixar o tutorial ?
    24/05/2008 2:56pm (~16 anos atrás)

    João Santos disse:
    como baixo o tutorial?

    obrigado
    30/03/2008 8:16am (~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.
    28/06/2007 5:30am (~17 anos atrás)

    Cyrus disse:
    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)

    Legal colega - me ajudou muito !
    28/09/2005 6:29pm (~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?
    24/06/2005 7:06pm (~19 anos atrás)

    dizem q a primeira impreção é a q fica,
    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é +
    11/03/2005 7:31pm (~19 anos atrás)

    Novo Comentário:

    (Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)