Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Diferença entre aspas simples e duplas?

Olá pessoal do Alura.

Tenho uma dúvida na linguagem PHP que não ficou muito claro pra mim (ou o professor comentou e eu não prestei atenção).

Quando chamamos uma array (ex: $_POST) e sua key(ex: ['id']), já vi o professor utilizando tanto aspas simples como dupla (assim como já testei e ambas funcionaram -> $_POST['id'] e $_POST["id"]).

Queria saber se nesse caso de uma simples chamada de key (excluindo o caso de aspas dentro de aspas como em uma query) não faz diferença nenhuma, ou se em algum momento vai ter diferenças?

5 respostas
solução!

A diferença está que com aspas duplas variáveis são interpretadas. Por exemplo:

$nome = "Lucas";

echo "Meu nome é $nome";

O resultado será:

Meu nome é Lucas

Se caso no echo você tivesse usado aspas simples o resultado seria:

Meu nome é $nome

Não sei se realmente essa foi sua duvida mas qualquer coisa comente aqui embaixo, espero ter ajudado.

Entendi, foi uma parte da minha dúvida sim, obrigado!

A única coisa que ainda não ficou muito claro é em relação a escolher uma key no array, como falei anteriormente. Por exemplo:

$_GET['nome'] funciona igualmente $_GET["nome"]... isso é uma característica geral do PHP?

Ah, sim. Tanto faz se você usa aspas simples ou duplas, a key ainda continua sendo uma string. Se quiser tirar uma "prova" você pode fazer assim:

$a = "String com aspas duplas";
$b = 'String com aspas simples';

depois você faz:

echo gettype($a);
echo gettype($b);

Ambos vão ter o mesmo resultado.

Fala, Lucas! Beleza?

A resposta do Daniel já explica essa questão. Tanto $_GET['nome'] quanto $_GET["nome"] funcionam pois a única diferença entre aspas simples ou duplas é que as aspas duplas tentam interpretar as expressões que estiverem contidas na string. Nesse exemplo onde é apenas uma string ("nome") sem nenhum valor a ser interpretado, não faz diferença nenhuma (nesse caso eu uso aspas simples, por questão de gosto).

Caso você precisasse que a chave a ser acessada fosse dinâmica, utilizaria aspas duplas:

$chave = '-world';
echo $_GET["hello$chave"];

Espero ter esclarecido um pouco mais. Abraços!

Certo, entendi perfeitamente a diferença agora.

Muito obrigado aos dois pela atenção!