PHP: Strings

String é um dos quatro tipos de dados escalares do PHP, que é usado nas mais variadas formas como por exemplo nomes, endereço, senhas, frases entre outros casos.

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.


Guia do artigo:

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 4, após o operador <<<, o identificador entre ''sinaliza ao PHP que a especificação é do tipo nowdoc.
  • Na linha 5, 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 "$ é 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
str_replace Substitui um texto dentro de uma string
substr_replace Substitui um 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); //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); //Substitui a string Linguagem pela string Amo echo str_replace('Linguagem', 'Amo', $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 a função ucwords() percorre a string e converte a primeira letra de cada palavra para o maiúscula.
  • Na linha 11 a função ucfirst() converte o primeiro caractere da string para o maiúscula.
  • Na linha 14 a função strtolower() converte toda a string para minúscula.
  • Na linha 17 a função strtoupper() converte toda a string para maiúscula.
  • Na linha 20 a função str_replace() a palavra Linguagem da variável $nome é alterada pela palavra Amo.
  • 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'.

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.

str_replace()

Fica mais fácil entender o que essa função faz nomeando os seus parâmetros, que são os seguintes:

str_replace(SEARCH, REPLACE, SUBJECT);
Código 14. Sintaxe da função str_replace()

Dessa forma, str_replace() vai substituir na string SUBJECT todas as ocorrências de SEARCH por REPLACE.

search: Este parâmetro consiste em receber um valor, uma string, que será usado para comparar se existe uma correspondência na string que queremos substituir. Conforme o Código 15:

//Resultado Lucas Gomes echo str_replace('Silva', 'Gomes', 'Lucas Silva');
Código 15. Parâmetro SEARCH

replace: Este parâmetro receberá o valor que substituirá o valor que definimos no parâmetro SEARCH, conforme o Código 16:

//Resultado Sandro Silva echo str_replace('Lucas', 'Sandro', 'Lucas Silva');
Código 16. Parâmetro REPLACE

subject: Este parâmetro informaremos a string que substituiremos o valor definido em REPLACE

$nome = “Lucas Silva; //Resultado Sandro Gomes echo str_replace($nome, 'Sandro Gomes', $nome);
Código 17. Parâmetro SUBJECT

substr_replace()

Essa função nos permite substituir parte de uma string e assim criar uma nova. Ela possui quatro parâmetros, sendo três deles essenciais para seu funcionamento e um opcional, como vemos no Código 15.

substr_replace(STRING, REPLACEMENT, START, LENGHT);
Código 18. Sintaxe da função substr_replace()

string: É o parâmetro que informa qual será a string a sofrer algum tipo de substituição.

replacement: É o novo valor a ser acrescentado em string.

start: Este parâmetro receberá o valor inicial onde a substituição ocorrerá. Esse valor pode ser positivo, negativo ou zero.

Se o valor for positivo, a contagem dos caracteres iniciará da esquerda para direita.

Nota: Lembre-se que numa sequência de caracteres a primeira posição equivale ao valor 0 e não 1
echo substr_replace("CARRO", "CASA", 1);
Código 19. substr_replace() - Parâmetro START com valor positivo

A substituição ocorrerá após a primeira letra(C) e o resultado será CCASA

Se o valor for negativo, a contagem dos caracteres iniciará da direita para esquerda. Diferentemente de quando o valor é positivo, a posição inicial não será 0, mas sim -1, como mostra o Código 20.

echo substr_replace("CARRO", "CASA", -1);
Código 20. substr_replace() - Parâmetro START com valor negativo

Se utilizarmos o mesmo exemplo feito no Código 19, tendo -1 como valor do parâmetro, o primeiro caractere da direita para esquerda será alterado, resultando em CARRCASA.

lenght: É um parâmetro opcional que especifica o tamanho da string a ser substituída. Caso seja utilizado há três regras importantes que, mediante o valor recebido, mudam seu comportamento: se for positivo, negativo ou zero.

Se o valor for positivo, ele representará o tamanho da string a ser substituída, conforme o Código 21.

echo substr_replace("CARRO", "CASA", 1, 1);
Código 21. substr_replace() - Parâmetro LENGHT com valor positivo

Como o LENGHT e START foram definidos em 1, o segundo caractere da string será substituído pelo valor definido no parâmetro replacement, que resultará na string CCASARRO. Se o valor for negativo, o tamanho da string a ser substituída será contado da direita para esquerda, conforme o Código 22.

echo substr_replace("CARRO", "CASA", 1, -1);
Código 22. substr_replace() - Parâmetro LENGHT com valor negativo

Como o valor informado foi negativo, ele representará o número de caracteres do final para o início da String que não serão substituídos. Conforme no Código 22 LENGTH é igual a -1 que corresponde ao último caractere da string, O, logo serão substituídos os caracteres entre o caractere C e O, valor do parâmetro START (1) e valor do REPLAMECENT(-1) respectivamente, tendo como resultado CCASAO.

Se o valor for zero, o valor definido no parâmetro replacement será inserido na string na posição informada no parâmetro start, conforme Código 23.

echo substr_replace("CARRO", "CASA", 1, 0);
Código 23. substr_replace() - Parâmetro LENGHT com valor 0

A string CASA será inserida após o caractere C, pois no parâmetro start foi definido que a substituição será iniciada no caractere de posição 1, que retornará CCASAARRO.

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 20 sua implementação.

$var = 15; //O valor de $var é convertido para string $var_2 = (string)$var;
Código 20. 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 21 veremos sua implementação.

$var = 15; //O valor de $var é convertido para string $var_2 = strval($var);
Código 21. 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 22. Exemplo conversão de booleana para string

Na linha 5 do Código 22, 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 23 o processo de conversão.

$var = 15; //O valor de $var é convertido para string $var_2 = (string)$var;
Código 23. 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 24.

$var = 1.5; //O valor de $var é convertido para string $var_2 = (string)$var;
Código 24. 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.

Confira também

Artigos relacionados