String é um dos quatro tipos de dados escalares do PHP, além de int, float e boolean. Para entendermos melhor, tipo escalar é aquele que armazena apenas um valor. Então, caso você esteja vindo da linguagem C, onde string é um array de caracteres, saiba que no PHP não é assim. String também não é um tipo por referência, como seria em Java/Python.

Por conta disso, declaramos uma string no PHP conforme a sintaxe do Código 1.

//Declaração de uma string com aspas simples
$nome = 'João';

//Declaração de uma string com aspas duplas
$sobrenome = "Silva";
Código 1. Exemplo de declaração de uma string

String consiste numa cadeia de caracteres que pode ser composta por letras e/ou números e/ou caracteres especiais. É utilizada para representar nomes, frases, endereços etc.

No PHP podemos utilizar alguns comandos da linguagem para imprimir o conteúdo de uma string, dentre eles veremos que os principais são os comandos echo e print.

echo

É utilizado para imprimir uma string, assim como variáveis ou constantes. É necessário apenas declarar o comando echo seguido do conteúdo que deseja imprimir como vemos no Código 2 o exemplo de sua utilização.

$nome = 'João';
$sobrenome = 'Silva';

//Impressão das duas variáveis
echo $nome,$sobrenome;
Código 2. Exemplo de impressão de uma string comando echo

Vemos no Código 2 a utilização do comando echo para imprimir os valores dos dois argumentos.

print

O print tem a mesma funcionalidade do comando echo, sendo a sua sintaxe composta pela palavra reservada print e o argumento entre parênteses, como mostra o Código 3.

$nome = 'João';
$sobrenome = 'Silva';

//Erro ao executar
print ($nome,$sobrenome);

//Comandos válidos
print ($nome);
print ($sobrenome);
Código 3. Exemplo de impressão de uma string comando print
  • Na linha 5 o comando print está recebendo dois argumentos: $nome e $sobrenome. Com isso, ao executar o comando será retornado um erro pelo interpretador do PHP, pois este comando apenas pode receber um único argumento.
  • Nas linhas 8 e 9 a execução do comando print ocorrerá com êxito já que ambos estão recebendo apenas um argumento a ser impresso.
Nota: O comando print recebe apenas um único argumento como parâmetro.

Veremos agora as quatro formas de especificar uma string, suas características e regras de utilização.

  • Aspas simples
  • Aspas duplas
  • Heredoc
  • Nowdoc

Aspas simples

São utilizadas para especificar uma string e na declaração de uma variável, constante ou com comandos de impressão. Veja no Código 4 sua utilização.

//String sendo impressa
echo 'linguagem PHP';
Código 4. Exemplo do uso aspas simples

No Código 4 utilizamos o comando echo para exibir o texto Linguagem PHP, onde o interpretador PHP irá reconhecê-lo como string por estar dentro das aspas simples.

Uma característica importante do uso das aspas simples é que o valor das variáveis não é impresso. Veja o Código 5 este comportamento.

$nome = 'PHP';

echo 'Minha linguagem favorita é $nome';
Código 5. Exemplo do uso aspas simples

No Código 5, ao executarmos o comando echo, todo o texto será impresso como string, mas a variável $nome não terá seu valor impresso, mas sim os caracteres que a compõe '$nome'.

Nota: Para especificar os caracteres apóstrofo ou contrabarra será necessário fazer uso da sequência de escape, que é a combinação da contrabarra \ seguida do apóstrofo e pela contrabarra, respectivamente.

Aspas duplas

As aspas duplas terão como finalidade especificar que determinados conjuntos de caracteres são do tipo string. Neste tipo de especificação o valor de uma variável será impresso, como vemos no Código 6.

$nome = 'PHP';

echo "Minha linguagem favorita é $nome";
Código 6. Exemplo do uso aspas duplas

No Código 6 todo o conteúdo entre "" será impresso, assim como o valor de $nome.

Heredoc

É a forma de especificação de strings sem o uso de aspas. Sua sintaxe é composta pelo operador <<< seguido de um identificador. Esta combinação informa ao PHP que o conteúdo a ser definido é uma string, e para informar ao interpretador o fim da sintaxe é utilizado o mesmo identificador. Veja no Código 7 sua implementação.

$nome = 'PHP';

//Será impressa string
echo <<<ABC
Minha linguagem favorita é $nome //o valor da variável será impresso
ABC;
Código 7. Exemplo do uso heredoc
  • Na linha 4, após o comando echo é utilizado o operador <<< seguido do identificador ABC para sinalizar ao PHP o início da sintaxe do heredoc.
  • Na linha 5 a string a ser impressa é especificada.
  • E na linha 6 é realizado o fechamento do heredoc com o uso do mesmo identificador.
Nota: Se uma variável for especificada na string, o seu valor será impresso e não seu nome literal.

Sintaxe

A nomeação do identificador deve conter somente caracteres alfanuméricos e sublinhados e iniciar com um caractere não numérico ou sublinhado.

O identificador de fechamento precisa começar na primeira coluna da linha. Assim como uso das aspas duplas, o heredoc também exibirá o conteúdo de uma variável.

Nowdoc

Especificar uma string com o nowdoc segue o mesmo formato do heredoc, tendo como diferença que o valor de uma variável especificada na string não será impresso.

Sua sintaxe é composta pelo operador <<< seguido de um identificador entre aspas simples. Para delimitar o encerramento da sintaxe não é necessário que o identificador esteja entre aspas simples, como vemos no Código 8.

$nome = 'PHP';

//Será impressa a string definida
echo <<<'ABC'
Minha linguagem favorita é o $nome //o valor da variável não será impresso
ABC;
Código 8. Exemplo do uso nowdoc
  • Na linha 2, após o operador <<<, o identificador entre ''sinaliza ao PHP que a especificação é do tipo nowdoc.
  • Na linha 3, a variável $nome não terá seu valor impresso como no heredoc, mas será impressa a sequência de caracteres $nome.
Nota: As regras de nomeação dos identificadores são iguais a do heredoc.

Interpretação de variáveis

Sempre que uma string for especificada entre aspas duplas ou heredoc, o valor das variáveis será interpretado. Chamamos isso de interpolação de strings, quando combinamos o texto com variáveis. Quando o sinal de cifrão $ for identificado numa string o interpretador do PHP tentará obter o nome de uma variável por meio da sequência de caracteres da string, como mostra o Código 9.

$nome = 'PHP';

echo "$nome é a minha linguagem favorita";
Código 9. Exemplo de interpretação de variáveis

Neste exemplo vemos que o PHP verificará a partir do $ quais são os possíveis caracteres que poderão compor uma variável. E após este processo imprimirá o seu conteúdo.

Existem duas sintaxes de interpretação de variáveis: a simples e a composta.

Sintaxe simples

Para que o interpretador PHP não realize o processo de descobrir o nome de uma determinada variável, podemos envolver seu nome com {} para delimitar os identificadores. Com esta sintaxe informaremos ao PHP qual será o nome da variável sem que ele necessite percorrer a cadeia de caracteres e verificar possíveis nomes.

$nome = 'PHP';
echo "${nome} é a minha linguagem favorita";
Código 10. Exemplo de interpretação de variáveis - sintaxe simples

Na linha 2 do Código 10, os operadores {} delimitaram para o PHP o nome da variável, com isso na execução do comando o seu valor da variável será impresso.

Sintaxe complexa

É utilizado para variáveis escalares, elementos de um array ou propriedade de um objeto. Diferentemente da sintaxe simples, o uso das {} será utilizado em toda a expressão e não apenas para delimitar o nome da variável, como mostra o Código 11.

$nome = 'PHP';
echo "{$nome} é a minha linguagem favorita";
Código 11. Exemplo de interpretação de variáveis - sintaxe complexa

Na linha 2, ao utilizarmos os operadores {} delimitamos toda estrutura da variável e na execução do comando o seu valor será impresso.

Manipulação de strings

O PHP permite por meio de algumas funcionalidades da linguagem manipular o conteúdo de uma string. Podemos acessar e modificar seus caracteres conforme sua posição, onde cada caractere e espaços em branco são considerados como uma posição.

A posição dos elementos é organizada de forma sequencial, crescente da esquerda para a direita, onde o primeiro caractere tem o valor 0 como referência. Veja o Código 12 de como acessar uma string.

$nome = 'PHP';
		
//Acesso ao primeiro caractere da variável nome
$primeiro_caractere = $nome[0];

//Modificação da variável nome		
$nome[1] = 'P';
echo $nome;
Código 12. Exemplo de interpretação de variáveis - sintaxe complexa
Nota: Na manipulação de strings os espaços em branco também são levados em consideração na sequência de caracteres.
  • Na linha 1 é declarada a variável $nome do tipo string contendo como valor o texto PHP.
  • Na linha 4 vemos uma nova sintaxe: a variável $nome seguida do valor 0 entre []. Esta sintaxe informa ao PHP estamos acessando o primeiro caractere de $nome.
  • Ainda na linha 4 é declarada a variável $primeiro_caractere, que receberá como valor o primeiro caractere de $nome.
  • Na linha 7 o valor 1 de $nome[1] informa ao PHP que acessaremos o segundo caractere da string.
  • $nome[1] recebe como valor o caractere P: este processo consiste na alteração do valor original da string PHP definida em $nome.
  • Na linha 8, com a execução do comando echo, o valor a ser exibido será o novo valor após a modificação realizada na linha 7, sendo impresso o valor PPP.
Nota: Strings também podem ser acessadas usando {} com o mesmo propósito.

O PHP também possui algumas funções específicas para a manipulação de strings, como vemos algumas na Tabela 1.

Funções Característica
strlen() Retorna o tamanho de uma string
ucwords Converte para maiúsculo o primeiro caractere de cada palavra
ucfirst Converte para maiúsculo o primeiro caractere da string
trim Retira o espaço no início e final de uma string
substr Retorna uma parte de uma string
substr_replace Substitui o texto dentro de uma parte de uma string
strtoupper Converte uma string para maiúscula
strtolower Converte uma string para minúscula
Tabela 1. Lista de funções de manipulação de strings

Vejamos agora no Código 13 as implementações destas funções.

$nome = 'Linguagem PHP';
$nome_2 = ' Linguagem Java ';

//será impressa a quantidade de caracteres da string (13)
echo strlen($nome);

//toda a string é convertida para minúscula 
echo strtolower($nome);

//Converte o primeiro caractere de cada palavra para maiúsculo
echo ucwords($nome);

//Converte o primeiro caractere para maiúsculo
echo ucfirst($nome);

//Converte a string para minúscula
echo strtolower($nome);

//Converte a string para maiúscula
echo strtoupper($nome);

//Insere na primeira posição da string os caracteres PHP
echo substr_replace($nome, 'PHP', 0,0);

//Será retornada parte da string
echo substr($nome, 1, 5);

//Retira o espaço no início e no final de uma string
echo trim($nome_2);
Código 13. Exemplo funções de manipulação de strings
  • Na linha 5 a função strlen() retornará a quantidade de caracteres presentes na variável $nome, sendo impresso o valor 13. Além dos caracteres o espaço em branco também é contabilizado.
  • Na linha 8 todos os caracteres da string especificada em $nome serão convertidos para minúsculo pela função strtolower().
  • Na linha 11 a função ucwords() percorre a string e converte a primeira letra de cada palavra para o maiúscula.
  • Na linha 14 a função ucfirst() converte o primeiro caractere da string para o maiúscula.
  • Na linha 17 a função strtolower() converte toda a string para minúscula.
  • Na linha 20 a função strtoupper() converte toda a string para maiúscula.
  • Na linha 23 a função substr_replace() insere os caracteres PHP a string e$nome na posição 0.
  • Na linha 26 a função substr() retorna parte da string original, tendo como referência o início na posição 1 e término na posição 5.
  • Na linha 29 a função trim() remove os espaços em branco da string entre ', entre o primeiro e o último caractere, e'.

Sobre a função substr(), seu funcionamento é um pouco diferente das demais linguagens, então vamos falar mais sobre ela. O primeiro parâmetro que ela recebe é a string da qual desejamos extrair uma substring. O segundo é START, que indicará a posição do caractere inicial da substring. O terceiro é o LENGTH, que define quantos caracteres a partir de START serão extraídos.

Além da manipulação de strings que o PHP permite, também poderemos converter outros tipos de dados para o tipo string.

Conversão para strings

A conversão em string é feita de forma automática no escopo de uma expressão onde uma string é necessária. O uso das funções echo ou print realizam esse tipo de conversão, mesmo quando o valor de uma variável é comparado com uma string.

Um valor pode ser convertido em uma string utilizando o modificador (string) ou a função strval().

Modificador (string)

Este modificador é utilizado para converter tipos de dados para string. Tem como sintaxe a palavra reservado string entre (). Veja no Código 14 sua implementação.

$var = 15;
		
//O valor de $var é convertido para string		
$var_2 = (string)$var;
Código 14. Exemplo conversão de tipo de dados - modificador (string)

Na linha 4 é realizada a conversão do valor de $var do tipo inteiro para string sendo atribuído a variável $var_2.

Função strval()

Esta função tem como objetivo converter para string o valor de uma variável. Sua sintaxe é composta do uso da palavra reservada strval recebendo como parâmetro a variável que terá seu valor convertido entre (). No Código 15 veremos sua implementação.

$var = 15;
		
//O valor de $var é convertido para string		
$var_2 = strval($var);
Código 15. Exemplo conversão de tipo de dados - função strval()

Na linha 4 a função strval recebe como parâmetro $var, que terá seu valor convertido para o tipo string e atribuído à $var_2.

Veremos agora como é feita a conversão dos tipos booleano, inteiro e ponto flutuante para string.

booleano para string

  • TRUE: é convertido para a string "1".
  • FALSE: é convertido para "" (uma string vazia).
$var = true;
$var_2 = false;
		
//O valor de $var é convertido para string		
$var_3 = strval($var);

//O valor de $var_2 é convertido para string
$var_3 = strval($var_2);
Código 16. Exemplo conversão de booleana para string

Na linha 5 do Código 16, a função strval recebe como parâmetro $var, que terá seu valor convertido para o tipo string e atribuído à $var_3.

Na linha 8 a função strval recebe como parâmetro $var_2, que terá seu valor convertido para o tipo string, mas sendo uma string vazia.

Inteiro para string

O tipo de dado inteiro pode ser convertido para o tipo de dado string onde, após a conversão de um determinado número, ele passará a ser representado de forma textual. Veremos no Código 17 o processo de conversão.

$var = 15;
		
//O valor de $var é convertido para string		
$var_2 = (string)$var;
Código 17. Exemplo conversão de inteiro para string

Na linha 4 é realizada a conversão do valor de $var do tipo inteiro para string e posteriormente sendo atribuído a variável $var_2.

Ponto flutuante para string

O tipo de dados ponto flutuante pode ser convertido para uma string, onde a conversão passará a ser representado de forma textual, como vemos no Código 18.

$var = 1.5;
		
//O valor de $var é convertido para string		
$var_2 = (string)$var;
Código 18. Exemplo conversão de ponto flutuante para string

Na linha 4 é realizada a conversão do valor de $var do tipo ponto flutuante para string e posteriormente sendo atribuído a variável $var_2.

Conclusão

Neste artigo vimos as principais características de strings na linguagem PHP, as formas de especificações e manipulação de seu conteúdo. Vemos através do conteúdo apresentado a importância deste tipo de dado em nossas implementações, visto que o utilizamos para representar informações do mundo real dentro do nosso código.