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

Algumas dúvidas PHP

"Repare que o ponto (.) soma duas strings. Mas o problema disso é que é muito trabalhoso. O PHP nos dá uma maneira mais fácil de misturar strings e variáveis. Chamamos isso de interpolação, e para isso, basta usar o símbolo { e }

O PHP vai automaticamente pegar o valor da varíavel nome e preco e concatenar na string. Fica mais fácil de ler. Mas repare que isso só funciona se a string for declarada com aspas duplas."

De qual parte do código se trata essa afirmação? O código estudado na aula foi este:

<?php
  include("cabecalho.php");
  $nome = $_GET["nome"];
  $preco = $_GET["preco"];

  $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

  $conexao = mysqli_connect('localhost', 'root', '', 'loja'); 
  if(mysqli_query($conexao, $query)) { 
?><p class="alert-success">Produto <?=$nome;?>, com valor de R$ <?=$preco;?> adicionado com sucesso!</p>
<?php
  } else {
?><p class="alert-danger">O produto <?=$nome;?> não foi adicionado.</p>
<?php
  };
?>

<?php include("rodape.php"); ?>

Seria aqui:

  $nome = $_GET["nome"];
  $preco = $_GET["preco"];

Eu fiz a alteração para aspas simples e funcionou sem problemas.

3 respostas

Essa afirmação estava falando dessa parte do código Geovane

$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

Repare que simplesmente passamos as variáveis $nome e $preco dentro de uma string e para isso utilizamos as chaves { }.

Na verdade estou falando desse trecho aqui:

O PHP vai automaticamente pegar o valor da varíavel nome e preco e concatenar na string. Fica mais fácil de ler. Mas repare que isso só funciona se a string for declarada com aspas duplas."
solução!

Então, é assim as aspas duplas do PHP interpretam variáveis, por exemplo:

$nome = "Geovane";
echo "Meu nome é $nome";

O resultado seria: Meu nome é Geovane. Caso usássemos aspas simples no echo, o resultado seria: Meu nome é $nome porque as aspas simples não entendem que $nome é uma variável e que tem um valor. Mas tanto as aspas simples quanto as duplas formam strings então, caso eu não vá passar nenhuma variável na string eu gosto mais de usar a simples, mas não faz diferença, só essa questão mesmo de interpretar ou não a variável.