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:
- echo
- Aspas simples
- Aspas duplas
- Heredoc
- Sintaxe
- Nowdoc
- Interpretação de variáveis
- Sintaxe simples
- Sintaxe complexa
- Manipulação de strings
- substr()
- str_replace()
- substr_replace()
- Conversão para strings
- Modificador (string)
- Função strval()
- booleano para string
- Inteiro para string<
- Ponto flutuante para string
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";
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;
Vemos no Código 2 a utilização do comando echo para imprimir os valores dos dois argumentos.
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);
- 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.
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';
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';
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'.
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";
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;
- 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.
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;
- 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.
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";
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";
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";
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;
- 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.
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 |
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);
- 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);
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');
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');
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);
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);
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.
echo substr_replace("CARRO", "CASA", 1);
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);
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);
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);
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);
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;
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);
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);
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;
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;
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
Confira outros conteúdos:
Teste unitário com PHPUnit
PHP: Funções
Primeiros passos com Laravel
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.