Buscar

LINGUAGENS DE SERVIDOR

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1 Chegou a hora da verdade! A interface está funcionando, e vocês decidem 
colocar a integração com o banco de dados para funcionar. Assim, escrevem 
o seguinte código: 
$str = 'mysql:host=localhost;dbname=meu_banco;charset=utf8'; 
$db = new PDO($str, 'root', 'root'); 
$select = 'SELECT * FROM produtos'; 
Após este início, quais deveriam ser as linhas para executar este select no 
banco e pegar todos os produtos? 
 
a $ produtos = $db->fetch($select) 
 
b $produtos = $db->exec($select); 
 
c $consulta = $db->query($select); 
$produtos = $consulta->fetch(); 
 
d $consulta = $db->query($select); 
$produtos = $consulta->fetchAll(); 
 
e $ produtos = $db->fetchAll($select); 
Pontuação: 1 
 
 
2 Você foi contratado por uma empresa para desenvolver uma aplicação de e-
commerce. Na sua primeira semana, você foi incumbido de fazer 
programação em dupla com um programador back-end júnior. Juntos, vocês 
vão fazer o formulário de login do e-commerce. No entanto, o seu colega não 
sabe muito bem qual seria o método mais adequado para o formulário. Você 
responde que o mais adequado é o método: 
 
a POST, pois mantém as informações explícitas para o usuário, ideal para um 
formulário de login; 
 
 
b GET, pois mantém as informações escondidas do usuário, ideal para um 
formulário de login; 
 
c GET, pois mantém as informações explícitas para o usuário, ideal para um 
formulário de login; 
 
 
d POST, pois mantém as informações escondidas do usuário, ideal para um 
formulário de login; 
 
e GET ou POST seriam métodos igualmente adequados para este formulário. 
Pontuação: 1 
 
 
3 Na hora de listar os produtos da loja, que vem dentro de uma array $produtos, 
o seu colega chegou ao seguinte código: 
 
for($i = 0; $i < count($produtos); $i++) { 
 echo '<p>'. $produtos[$i]['nome'] .'</p>'; 
} 
 
Você identifica que o loop pode ser facilmente substituído por 
um foreach. Assim, sugere ao seu colega que substitua os trechos em negrito 
por: 
 
a foreach($produtos) e $p['nome'] 
 
 
b foreach($produtos) e $produtos['nome'] 
 
 
c foreach($produtos as $p) e $p['nome'] 
 
d foreach($produtos as $i) e $produtos[$i]['nome'] 
 
e foreach($p in $produtos) e $p['nome'] 
Pontuação: 1 
 
 
4 Você e seu colega criam uma função para reajustar o valor de forma a 
oferecer um desconto base, cujo valor pode ser dobrado se o usuário atender 
a certas condições. A função está exemplificada abaixo: 
 
function calcularValorFinal($valor, $descontoBase, $dobrarDesconto){ 
 if($dobrarDesconto){ 
 $valor = $valor * (100 - $descontoBase * 2)/100; 
 } else { 
 $valor = $valor * (100 - $descontoBase)/100; 
 } 
} 
 
Devido à arquitetura do sistema, vocês não podem retornar o conteúdo de 
$valor usando um return. Em outras palavras, isto significa que deve ser 
possível fazer o seguinte: 
 
$valor = 500; 
calcularValorFinal($valor, 15, false); 
echo $valor; // imprime 425 
 
Assim, uma alternativa para essa situação é 
 
a extrair a função para uma biblioteca externa. 
 
b usar uma função anônima. 
 
c entender que não há solução para este problema. 
 
d passar o parâmetro valor por referência. 
 
e usar uma função recursiva. 
Pontuação: 1 
 
 
5 O sistema está caminhando muito bem! Vocês partem para o 
desenvolvimento do painel administrativo, em que deve ser possível fazer 
upload de uma foto para o produto. Vocês chegam ao seguinte código: 
 
if(array_key_exists('foto_produto', $_FILES)){ 
$localAtual = $_FILES['foto_produto']['tmp_name']; 
$novoLocal = "./imagem_produtos/$id.jpg"; 
 _______; 
} 
Qual deve ser o comando para mover a imagem de $localAtual para 
$novoLocal? 
 
a mvfile($localAtual, $novoLocal); 
 
b mv($localAtual, $novoLocal); 
 
c rename($localAtual, $novoLocal); 
 
d move($localAtual, $novoLocal); 
 
e transfer($localAtual, $novoLocal); 
Pontuação: 1 
 
 
6 Para o sistema de descontos, vocês criam a seguinte classe: 
 
class Promocao { 
 private $titulo; 
 private $desconto; 
 private $cupom; 
 
 public function __construct($t, $d, $c) { 
 $this->titulo = $t; 
 $this->desconto = $d; 
 $this->cupom = $c; 
 } 
 
 public function aplicarDesconto($valor){ 
 return $valor * (100-$this->desconto)/100; 
 } 
 
 public function cupomValido($palpite){ 
 return $palpite == $this->cupom; 
 } 
 
Podemos dizer que as propriedades desta classe são 
 
a $t, $d e $c. 
 
b aplicarDesconto e cupomValido. 
 
c a classe não tem propriedades. 
 
 
d aplicarDesconto e cupomValido. 
 
 
e $titulo, $desconto, $cupom. 
Pontuação: 1 
 
 
7 Você e seu colega chegaram ao seguinte código para somar os preços de um 
carrinho de compras: 
 
function somaCarrinho($produtos) { 
 $soma = 0; 
 foreach($produtos as $p){ 
 $soma += $p['valor']; 
 } 
 return $soma; 
} 
 
$carrinho = []; 
$valorTotal = somaCarrinho($carrinho). 
 
No entanto, ao passar um carrinho vazio, o resultado é 0. Isso, embora 
correto, causa confusão com carrinhos cujo valor é realmente 0 (isto é, em 
que todos os produtos são gratuitos devido ao cupom). 
 
Para resolver isso, vocês alteraram a função para criar uma 
exception/exceção quando isso acontece: 
 
function somaCarrinho($produtos) { 
 if(count($produtos) == 0){ 
 throw new Exception("Carrinho vazio"); 
 } 
 $soma = 0; 
 foreach($produtos as $p){ 
 $soma += $p['valor']; 
 } 
 return $soma; 
} 
 
Agora falta envolver a chamada da função em um try/catch. Qual seria a 
forma adequada de fazer isso? 
 
Exceptions (Exceções). Exceções são objetos da classe Exception, qu
e 
é uma classe especial que indica que algo fora do ideal aconteceu. Ao 
chamar uma função, ela pode identificar que existe um problema e qu
e 
não é possível continuar. Assim, essa função pode, propositalmente, 
lançar uma exceção. 
 
Conceito: Meio certo - Pontuação: 1 
Explicação: 
 
try{ 
 $valorTotal = somaCarrinho($carrinho); 
} catch(Exception $e){ 
 echo 'Carrinho vazio'; // o aluno pode inventar ou omitir a mensagem 
} 
Feedback: Queremos capturar a exceção lançada pela função somaCarrinho(). 
Dessa forma, basta envolver a chamada da função em um bloco try, seguido 
por um bloco catch, em que reagimos na eventualidade de uma exceção. 
 
Legenda: 
 Alternativa correta 
 Resposta do aluno

Continue navegando