3
respostas

Aspas

Prezados No trecho de código abaixo, localizado em https://cursos.alura.com.br/course/php-strings-operacoes-expressoes-regulares/task/57175, as aspas não deviam ser duplas? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Não precisa, a principal diferença entre a aspas simples e dupla no php é poder incluir variáveis dentro da "string" evitando a concatenação, por exemplo

$var = 'Bruno';

echo "Meu nome é $var"; -> imprimirá "Meu noome é Bruno"

echo 'Meu nome é $var' -> imprimirá "Meu nome é $var"

para imprimir com aspas simples precisa fazer assim:

echo 'Meu nome é ' . $var; -> imprimirá "Meu noome é Bruno"

Prezado Bruno Obrigado pelo retorno, mas deixe-me reformular a minha pergunta. Veja o código abaixo (mesma página):

$arquivo = $diretorio . str_replace('\\', DIRECTORY_SEPARATOR, substr($classe, $tamanhoPrefixo)) . '.php';

O objetivo é substituir as barras inverdias da variável $classe pelo separador de diretório do SO. E a instanciação de objetos da classe segue abaixo:

$contato = new \App\Alura\Contato($_POST['email']);
$usuario = new \App\Alura\Usuario($_POST['nome']);

Eu não testei este código, mas se o nome da classe for '\App\Alura\Contato' (com uma barra invertida) e a função str_replace procurar '\\' (duas barras invertidas) não está errado? Lembrando que no código abaixo (mesma página) as aspas duplas converteram duas barras invertidas em uma, o que não aconteceu no código acima que usa aspa simples:

$prefixo = “App\\”;

Essa é a minha dúvida. Desde já, agradeço a atenção dispensada Erick, (11)96064-2772

Bruno Já encontrei a resposta no site https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single, que transcrevo abaixo:

"Single quoted ¶ The simplest way to specify a string is to enclose it in single quotes (the character '). To specify a literal single quote, escape it with a backslash (\). To specify a literal backslash, double it (\\). All other instances of backslash will be treated as a literal backslash: this means that the other escape sequences you might be used to, such as \r or \n, will be output literally as specified rather than having any special meaning."

Ou seja, apesar de estar utilizando aspas simples ('), continua sendo necessário escapar a barra invertida, ou seja, escrever duas ('\\') para obter uma ('\'). Eu achava que por ela ser "estática", não interpretando as variáveis e demais caracteres especiais, isso não fosse necessário. Mais uma vez, obrigado pela ajuda.

PS - Reparei que no editor de texto deste fórum isso também é necessário.