Strings podem ser especificadas usando-se um dos dois conjuntos de delimitadores.
Se a string está englobada entre aspas ("), as variáveis dentro da string serão expandidas (sujeitas a algumas limitações de análise). Como em C e em Perl, a barra invertida ("\") pode ser usada para especificar caracteres especiais:
Tabela 6-1. Caracteres de escape
sequence | meaning |
---|---|
\n | nova linha |
\r | retorno de carro |
\t | tabulação horizontal |
\\ | barra invertida |
\$ | cifrão |
\" | aspas |
\[0-7]{1,3} | a sequência de caracteres que casa com a expressão regular é um caractere na notação octal |
\x[0-9A-Fa-f]{1,2} | a sequência de caracteres que casa com a expressão regular é um caractere na notação hexadecimal |
Você pode escapar qualquer outro caractere, mas um alerta será emitido no nível mais alto de alertas.
A segunda maneira de delimitar uma string usa o apóstrofe ("'"). Quando uma string é englobada por apóstrofes, os únicos escapes que serão entendidos são "\\" e "\'". Isto é por conveniência, de forma que você tenha apóstrofes e barras invertidas em uma string com apóstrofes. As variáveis não serão expandidas dentro de uma string com apóstrofes.
Outra maneira de delimitar strings é pelo uso da sintaxe 'here doc' ("<<<"). Alguém deve fornecer um identificador depois de <<<, depois a string, e então o mesmo identificador para fechar a citação. O identificador de fechamento precisa começar na primeira coluna da linha.
Nota: Suporte a 'here doc' foi acrescentado no PHP 4.
Strings podem ser concatenadas usando-se o operador '.' (ponto). Note que o operador '+' (adição) não funcionará para isso. Por favor veja Operadores de string para mais informações.
Caracteres dentro de strings podem ser acessados pelo tratamento da string como uma matriz de caracteres indexadas numericamente, usando a sintaxe no estilo C. Veja alguns exemplos abaixo.
Quando uma string é avaliada como um valor numérico, o valor resultante e o tipo são determinados como se segue.
A string será avaliada como um 'double' se contiver qualquer um dos caracteres '.', 'e', ou 'E'. Caso contrário, será avaliada como um inteiro.
O valor é dado pela porção inicial da string. Se a string começa com dados numéricos válidos, estes serão o valor usado. Caso contrário, o valor será 0 (zero). Dados numéricos válidos são um sinal opcional, seguido por um ou mais dígitos (opcionalmente contendo um ponto decimal), seguido por um expoente opcional. O expoente é um 'e' ou 'E' seguido por um ou mais dígitos.
Quando a primeira expressão é uma string, o tipo de variável dependerá da segunda expressão.
$foo = 1 + "10.5"; // $foo é 'double' (11.5) $foo = 1 + "-1.3e3"; // $foo é 'double' (-1299) $foo = 1 + "bob-1.3e3"; // $foo é inteiro (1) $foo = 1 + "bob3"; // $foo é inteiro (1) $foo = 1 + "10 porquinhos"; // $foo é inteiro (11) $foo = 1 + "10 porquinhos"; // $foo é inteiro (11) $foo = "10.0 porcos " + 1; // $foo é inteiro (11) $foo = "10.0 porcos " + 1.0; // $foo é 'double' (11) |
Para mais informações sobre esta conversão, veja a página de manual de strtod(3).
Se você gostaria de testar qualquer um dos exemplos desta seção, você pode cortar e colar os exemplos e inserir a seguinte linha para ver, por você mesmo, o que está acontecendo: