Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Perfect Lion

Conhecendo Melhor o ('),("),(`)

Recommended Posts

Bem vamos entender como funfa melhor esses krakters no php:

 

Vamos começar com a Apóstrofos (').

 

Apóstrofos (')

 

Os Apóstrofos são muitos parecidas com aspas duplas ("), mas existem pequenas diferenças entre elas. Esse tipo de aspas pode ser usada para delimitar qualquer dado alfanumérico, como no exemplo abaixo:

 

<?echo '<label>Ola Mundo</label>';?>
Aqui ele irá imprimir na tela Ola Mundo. Mais tem um porém, devemos tomar cuidado ao utiliza lá pois você pode ter um testo que contem um (') no meio do texto. isso ira causar um erro em seu script. veja o exemplo abaixo:

 

<?echo '<label>Meu nome é Erick Leão's</label>';?>
Isso irá causar um erro em seu script pois se você der uma olhada ele irar interpretar como alpha numérico até o segundo (') mais esse problema pode ser simples mente resolvido com o Caractere de Controle mais conhecido como "Contra Barra" (\).

 

Pó o que é esse bendito cancela?

R:O Caractere de Controle "Contra Barra" (\) ele escapa caracteres para serem interpretada como uma string. O símbolo que representa o O Caractere de Controle é o Contra Barra (\) fazendo assim o php interpretar a próximo caractere ser tratada como string (alpha numérico)

 

Então se colocarmos uma Contra Barra (\) na segunda Apóstrofos (') ele iria interpretar o próximo caractere como uma string. Veja Abaixo

 

<?echo '<label>Meu nome é Erick Leão\'s</label>';?>
Agora ele irá imprimir na tela a mensagem "Meu nome é Erick Leão's", por quê? porque colocamos o Contra Barra antes do caractere de ação.

 

Lembre-se que ao colocar o Controlador de caractere não irá aparecer na tela pois ele está informando para o php que aquele caracter a seguir é continuação da seqüência

 

Bem agora você estudando isso fazendo alguns testes e de repente você se depara com isso

 

$nome = 'Erick';$sobre_nome = 'Leão';echo '$nome $sobre_nome';
O resultado é: "$nome $sobre_nome" e você se pergunta "Será que o meu php está com algum problema?? a resposta é não. Isso acontece porque quando você usa uma variável dentro de um Apóstrofos (') ela não interpola com variáveis. lembre se disso...

 

ASPAS Duplas (")

 

A Aspas Duplas é muito parecido com a Aspas Simples só que existe uma grande diferença entre elas.. a interação com variáveis. nela você pode interpolar variáveis dentro delas... veja o exemplo a seguir:

 

$nome = 'Erick';$sobre_nome = 'Leão';echo "$nome $sobre_nome";
Aqui ao contrário da Apóstrofos aqui ele vai mostrar o resultado na janela "Erick Leão", pois como dito acima ele pode interpolar uma variável dentro dele.

Lembra daquele problema de termos um (') no meio da string com a Apóstrofos acontece a mesma coisa aqui tbm com a aspas duplas (") então para resolvermos isso usamos o caractere de controle (\).. veja o exemplo abaixo:

 

echo "Meu Nome é " erick " ok ?";
No exemplo acima ira dar erro pois ele interpreta como string até a segunda aspas duplas e na terceira aspas duplas ele volta a interpretar ficando o erick não sendo uma string então o que fazemos???

 

Seria isso?

echo "Meu Nome é \" erick \" ok ??";
Isso bom garoto... ta aprendendo em.... agora ele vai interpretar tudo com string dando o resultado a seguinte "Meu Nome é " erick " ok ??"..

 

ASPAS Invertida (`)

 

Ela já é totalmente diferente das demais.. ela serve para executar comando interno do servidor como por exemplo pingar um ip, listar diretori. veja o exemplo

 

echo `ping www.uol.com.br`;
aqui ele irá pingar o ip da ul e ira mostra na tela o resultado..

 

Editado:

Acrecentando mais algumas coisinhas...

 

Heredoc (<<<)

 

Outra maneira para delimitar strings é utilizando a sintaxe heredoc ("<<<"). É informado um identificador depois de <<<, então a string, e então o mesmo identificador para fechar a delimitação.

 

O identificador de fechamento precisa começar na primeira coluna da linha. Além, o identificador utilizado precisa seguir as mesmas regras de nomeação que qualquer outro rótulo no PHP: só pode conter caracteres alfanuméricos e sublinhados, e precisa começar com um caracter não numérico ou sublinhado.

 

É muito importante verificar que a linha do identificador de fechamento não contenha nenhum outro caracter, exceto, possivelmente um ponto e vírgula ( ;) . O que significa que o identificador não pode ser indentado, e que não pode haver nenhum espaço ou tabulações antes ou depois do ponto e vírgula. É também importante perceber que o primeiro caracter antes do identificador de fechamento precisa ser um caracter de nova linha como esperada por seu sistema operacional. Por exemplo, \r em sistemas Macintosh.

 

Se essa regra for quebrada e o identificador de fechamento não estiver perfeito, então ele não será considerado como identificador de fechamento e o PHP irá continuar procurando por um. Se, neste caso, um identificador de fechamento apropriado não for encontrado, então um erro de interpretação (parse) será lançado na linha final do script.

 

ex:

 

<?$nome = 'Erick';echo <<<EOFOpa tudo certo???Meu nome é $nome prazer.....EFO;?>
Editado2

Como o fabão sugeriu segue uma lista de exemplo escapando caracters

 

<?echo "Ola meu nome é 'erick'"; // aqui imprime Ola meu nome é 'erick' repare que não foi preciso escapar o apostrofo porque ele está dentro da aspas duplas$nome = "erick";echo "Ola meu nome é \"$nome\""; // aqui foi preciso escapar o " que está dentro da aspas duplas para o php entender que é continuação da string$class = new class();echo "nome $class->nome"; // Imprime  nome erick$array = array("nome"=>"erick", "sobre_nome"=>"leão");echo "Meu nome é $array["nome"] $array["sobre_nome"]"; // nesse exemplo ira dar erro....por causa dos " no meio da string da variavel que contem uma matriz$array = array("nome"=>"erick", "sobre_nome"=>"leão");echo "Meu nome é $array[\"nome\"] $array[\"sobre_nome\"]"; // denovo o erro.. agora você se pergunta porque se eu usei o controlador... bem a variavel que contem a matriz ela não aceita \ no meio de sua sintaxe fazendo assim morrer o elemento..então como ficaria??$array = array("nome"=>"erick", "sobre_nome"=>"leão");echo "Meu nome é {$array["nome"]} {$array["sobre_nome"]}"; // colocamos a variavel entre {} para informar ao php que ele é uma variavel e tem que ser interpretado como ela é.// o mesmo acontece com o <<<EOF EOF;?>
Mais uma dica para Aspas duplas (")

Se a string é delimitada entre aspas ("), o PHP entende mais seqüências de escape para caracteres especiais:

 

Seqüência===============Significado\n ====================fim de linha (linefeed ou LF ou 0x0A (10) em ASCII)\r ====================retorno de carro (carriage return ou CR ou 0x0D (13) em ASCII) \t ====================TAB horizontal (HT ou 0x09 (9) em ASCII) \\ ====================contra barra ou barra invertida \$ ====================sinal de cifrão \" ====================aspas \[0-7]{1,3} ==============a seqüência de caracteres batendo a expressão regular dos caracteres em notação octal  \x[0-9A-Fa-f]{1,2} =========a seqüência de caracteres batendo a expressão regular de um caracter em notação hexadecimal
Se tiver mais coisa depois eu reforço mais o nosso amigo cursinho aqui ;)

 

Bem é isso espero que gostem :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa erickeu sempre me perguntava as diferençaeu sabia que tinha mais nunca tinha ido atras pra descobri \o//ta anotado ja >)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada lá novamente pessoal eu acrecentei mais coisa lá :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabão Já editei com alguns exemplos e acrecentei mais coisas lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.