Tipo de dados String em PHP  – Parte 1

php_code_1

Nível Básico

Neste post vamos ver um pouco sobre o tipo de dados string no PHP e breves exemplos para que seja possível entender plenamente como funciona no PHP o tipo de dados String, embora seja o mesmo funcionamento em qualquer outra linguagem de programação.

 Só porque o PHP é tido como uma linguagem fracamente tipada, não quer dizer que não existe nenhuma forma de categorizar os dados em tipos diferentes e manipular desta forma! Conforme a Wikipedia, “Linguagens fracamente tipadas ou Dinamicamente tipadas são aquelas em que durante a execução do programa podem alterar o tipo de dados contido em uma variável. Permitem que o programador não tenha de fazer conversões de tipos (cast). Exemplos destas linguagens são PHP, Javascript, Ruby, Python.” (https://pt.wikipedia.org/wiki/Linguagem_tipada, acesso 07/12/2015). Portanto, os tipos existem em PHP e devem obrigatória ser conhecidos pelo programador. É claro que isso vem desde a lógica de programação então você deve saber muito bem o significado disso.

Na informática, String é uma cadeia de caracteres, posicionados em sequencia normalmente representando palavras, frases ou textos em um programa. Como uma sequencia de dados, de forma simples, os caracteres são organizados em uma “matriz” de caracteres.

Entenda melhor: como você sabe, um caractere é normalmente formado por um Byte, em outras palavras, oito bits. Você poderá ter até 256 combinações diferentes de caracteres e é exatamente isso que você percebe quando olha para um mapa de caracteres de algum padrão, como por exemplo, o ASCII.

Logo então temos string como uma “matriz de Bytes” e, normalmente “string” é tido como um “tipo” de dados. Muitos livros, sites, professores e etc, preferem dar diversas formas de explicações sobre o que significa “tipo de dados”. Inclusive já li muitos e fiquei até confuso com certas definições. Por isso, prefiro de forma simples dizer como vejo, sendo “categorias de informações” que são manipuladas conforme sua própria natureza. Você deve ter estudado em lógica de programação que existem três tipos básicos de informação: Dados numéricos, Dados literais ou alfa-numéricos e Dados lógicos. Digamos que Strings se encaixam exatamente no tipo Dados literais ou alfa-numéricos e estes, servem para tratamento de textos. Logo string deverá normalmente ser utilizada para tratamento de textos. Então sendo string uma categoria de dados para tratamento de textos, estes dados deverão ser manipulados conforme a sua própria natureza: textos.

String pode ser definido em um algoritmo como constante, que não sofrerá nenhuma alteração em tempo de execução. Mas também variável, que pode sofrer alterações conforme a necessidade do algoritmo em tempo de execução. Para que isso seja possível é necessário a manipulação dos dados através de elementos essenciais na programação. Embora este post não seja sobre este assunto, podemos dizer de forma simples que uma constante e uma variável, são elementos usados na programação, que representam um “espaço de memória” que alocam dados de um tipo especifico. Os nomes já em si são bem auto descritivos, pois, uma constante quer dizer que tem um valor estático que não pode ser mudado em nenhum momento. Já uma variável poderá “variar” seus valores conforme for sendo manipulada durante a execução de um algoritmo. Assim, podemos melhorar a definição acima: podemos ter elementos constantes ou variáveis do tipo ou categoria string.

Suponhamos ter uma variável $str definida da seguinte forma:


$str = “Alexandre”;

Logo podemos representar a matriz de caracteres da seguinte forma:

Ilustrando uma String
Ilustrando uma String

Da mesma forma caso, haja necessidade de alterar o valor da variável, teríamos a seguinte forma:


$str = “O PHP é uma das linguagens de programação mais usadas no mundo”;

Logo podemos representar a matriz de caracteres da seguinte forma:

Frase com string
Frase com string

Sendo assim, como estamos nos referindo a uma matriz de caracteres, podemos adicionar a informação de que cada elemento da matriz possui um índice que representa o posicionamento do Byte nesta matriz. A sequência de índices inicia-se em zero “0”.

Visto que o tipo string é uma categoria de dados que deve ser manipulada conforme a sua natureza, então precisamos de operadores e funções que manipulam “string” como “string”, ou seja, tratando como textos.

Usando o exemplo acima, poderíamos criar o seguinte exemplo de código para descobrir o tamanho da string:

<?php
$str = “O PHP é uma das linguagens de programação mais usadas no mundo”;

echo strlen($str);

?>

A função strlen() é utilizada para obter o tamanho de uma string. Então, já que o comando echo é utilizado para imprimir caracteres na tela, teríamos o seguinte resultado apenas: 62. Então você se pergunta, olhando para a representação acima, porque? Vejo que termina em 61. A resposta está no índice inicial que é zero, sempre se inicia em zero.

A função substr() é usada para retornar uma sub string a partir de uma string original. Então caso você quisesse saber o ultimo caractere de uma string, poderia utilizá-lo da seguinte forma:

<?php

$str = “O PHP é uma das linguagens de programação mais usadas no mundo”;

echo substr($str, -1);

?>

Conforme o manual do PHP (http://php.net/manual/pt_BR/function.substr.php) a função substr() tem a seguinte sintaxe:

substr ( $string, início, comprimento)

onde nos argumentos:

$string – é a variável original que representará a string;

Início – é um valor numérico do tipo inteiro que representa o índice inicial na matriz de caracteres.

Comprimento – é um valor numérico do tipo inteiro que representa quantos caracteres deverão compor a nova variável a partir do índice início.

Detalhe importante é se o valor início for negativo, ele começa a retornar a partir do fim da matriz. Por isso como no exemplo acima, queremos imprimir substr($str, -1), teremos como resultado o caractere final “o”. Caso alterássemos para substr($str, -5), teríamos como resultado “mundo”.

Entretanto, se você indicar um caractere positivo, a contagem será a partir da posição início para direita, ou seja, utilizando como exemplo substr($str, 30), teríamos “programação mais usadas no mundo”.

Mas como você nota na sintaxe, podemos indicar quantos caracteres queremos que seja apresentado logo após o índice inicial, então para ilustrar, utilizando substr($str, 30, 11), teríamos “programação”.

Lembrando que o índice inicial é zero, então poderíamos utilizar este índice como início:

<?php

$str = “O PHP é uma das linguagens de programação mais usadas no mundo”;

echo substr($str, 0, 41);

?>

Teríamos como resultado:


O PHP é uma das linguagens de programação

Para concluir sobre esta função, note que o argumento “comprimento” na função substr(), não representa o índice final, mas sim quantos caracteres devem ser trazidos para formar a nova string.

Temos uma função importantíssima, que normalmente é utilizada para se retirar espaços no início ou final de uma string. Note a matriz:

Ilustra uma string alterado por uma função
Ilustra uma string alterado por uma função

Nesta representação, os elementos da matriz compostos por caracteres com espaços em branco, estão representados com a cor azul. Temos três funções que podem ser aplicadas para eliminar espaços.

A função trim() elimina simultaneamente os espaços do final e do início da string. Por exemplo:

<?php

$str = “ Função do PHP ”;

echo trim($str);

?>

Caso você execute este código, talvez não perceberá nenhuma diferença na impressão, mas a string resultante seria “Função do PHP” sem os espaços iniciais e finais. Para manipular esta acima string com espaços você teria resultados indesejados em alguma situação. Tome como exemplo a seguinte matriz:

String para eliminar espaços
String para eliminar espaços

Note que temos mais uma matriz de caracteres iniciando com um espaço em branco no índice 0 e também termina com espaço em branco no índice 32. Um método para se concatenar strings é utilizando o operador ponto “.”, mesmo utilizado para ponto final em uma frase. Note o código abaixo:

<?php

$str1 = “ Função do PHP ”;

$str2 = “ utilizada para eliminar espaços ”;

echo $str1 . $str2;

?>

Agora caso você executasse este código notaria um espaço duplicado “na liga” das duas variáveis:


Função do PHP  utilizada para eliminar espaços

Talves o exemplo acima não seja muito claro, mas vamos reescrever este exemplo para:

<?php

$str1 = “#Função do PHP#”;

$str2 = “#utilizada para eliminar espaços#”;

echo $str1 . $str2;

?>

Perceba que foram adicionados sinais de cerquilha no lugar dos espaços inciais e finais e o resultado:


#Função do PHP##utilizada para eliminar espaços#

Agora pareceu obvio o que quero dizer! Então para eliminar este problema você poderia utilizar o comando trim() em uma das variáveis:

<?php

$str1 = “ Função do PHP ”;

$str2 = “ utilizada para eliminar espaços ”;

$str2 = trim($str2);

echo $str1 . $str2;

?>

Note que redefinimos a variável $str2 para um valor novo, utilizando o próprio valor da variável $str2 porém eliminando os espaços iniciais e finais com a função trim() e o resultado:


Função do PHP utilizada para eliminar espaços

Notou a diferença? Você também poderia escolher de qual lado quer eliminar os espaços, utilizando rtrim() para espaços a direita e ltrim() para espaços a esquerda. O código abaixo teria o resultado impresso semelhante ao código anterior:

<?php

$str1 = “ Função do PHP ”;

$str2 = “ utilizada para eliminar espaços ”;

$str2 = ltrim($str2);

echo $str1 . $str2;

?>

Mas como já relembrado acima, e visto no exemplo anterior, as variáveis são elementos que podem sofrer alteração na mudança dos seus valores durante a execução de um algoritmo. Assim, podemos testar a função str_replace(). Esta função tem como objetivo substituir caracteres os partes de uma string. Relembre a matriz de caracteres:

Frase com string
Frase com string

Suponhamos que quiséssemos alterar esta frase para “O PHP é uma das linguagens de programação preferidas no mundo”, perdendo inclusive um caractere de tamanho:

String que foi modificada por substituição de caracteres
String que foi modificada por substituição de caracteres

Como faríamos? Com str_replace() da seguinte forma:

<?php

$str1 = “O PHP é uma das linguagens de programação mais usadas no mundo”;

$str2 = str_replace(“mais usadas”, “preferidas”, $str1);

echo substr($str2);

?>

Perceba que a sintaxe desta função também é bem objetiva em relação a sua meta:

Str_replace($stringProcurada, $stringSubsistituir, $stringOriginal, $conteAlterações )

Onde os argumentos:

$stringProcurada – É exatamente a sequencia de caracteres a ser localizada dentro da string.

$stringSubstituir – Siginifica os caracteres que você deseja colocar no lugar dos caracteres encontrados na combinação do argumento anterior.

$stringOriginal – É a string original sem nenhuma alteração.

$conteAlterações – é opcional, note que não utilizei no exemplo. Serve para retornar o número de ocorrências das combinações que você informou no primeiro argumento e que sofreram as alterações.

Então se você imprimir $str1 terá o valor da string original:

O PHP é uma das linguagens de programação mais usadas no mundo

Mas se imprimir $str2, terá o valor novo:


O PHP é uma das linguagens de programação preferida no mundo

Entretanto você não precisaria, guardar o novo valor em uma nova variável, poderia ser redefinida a mesma variável da seguinte forma:

<?php

$str = “O PHP é uma das linguagens de programação mais usadas no mundo”;

$str = str_replace(“mais usadas”, “preferidas”, $str);

echo substr($str);

?>

O resultado seria o mesmo, pois $str pode sofrer alterações quantas vezes forem necessárias. O motivo inicial para utilizar variáveis diferentes era meramente didático.

Caso você utilizasse o ultimo argumento, poderia imprimir o número de alterações efetuadas. Para isso bastaria alterar a linha de str_replace() para:

$str = str_replace(“mais usadas”, “preferidas”, $str, $contar);

Então, utilizando o comando echo $contar, produziria o resultado 1.

Até este momento foram vistos as funções strlen(), substr(), trim(), rtrim() e ltrim(), str_replace(), inclusive brevemente o operador de concatenação, o ponto “.”. Mas existem muitas outras funções que são tidas como muito importantes.

Este post apenas inaugurou uma nova categoria no Blog: Programação! Embora exista inúmeras coisas que seja possível falar a respeito de strings, a fim de que não se torne cansativo, alguns exemplos serão vistos em um novo post.

[]’s

1 comentário

  1. Quero agradecer pela sua gentil contribuição. Achei seu blog por acaso e estou gostando muito. Parabéns pela didática e pela forma que você transmite o seu conhecimento – “de uma forma bem esclarecedora”. Espero que continue com mais posts. E tenho uma dica, seria legal você lançar um curso de PHP na Pratica em alguma plataforma de curso online, como a “Udemy”… Eu compraria na hora. Fica a dica. Grato.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.