Prévia do material em texto
04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 1/8 Curso 2203-LINGUAGENS DE SERVIDOR Teste Clique aqui para iniciar o Quiz Iniciado 04/09/22 14:27 Enviado 04/09/22 14:41 Data de vencimento 28/09/22 23:59 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 14 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Programadores de outras linguagens podem estranhar o comando foreach do PHP. A maioria das linguagens, embora defina algum tipo de estrutura parecida, não utiliza a palavra- chave foreach para este fim, normalmente reutilizando a estrutura já disponível do for e alterando apenas detalhes de sua sintaxe interna. Assim, sobre o loop “foreach”, pode-se afirmar o seguinte: tem a principal função de deixar nosso código mais legível e menos propenso a erros. sempre precisamos capturar a chave do array que estamos iterando; serve apenas para iterar em arrays associativos; substitui o loop “for” em 100% dos seus casos de uso; serve apenas para iterar em arrays de chaves numéricas; tem a principal função de deixar nosso código mais legível e menos propenso a erros. A alternativa E é a correta. Nosso código fica mais semântico “para cada item da lista, faça isso” e menos propenso a erros, pois não estamos mantendo um contador manualmente. Pergunta 2 Ao dar manutenção para um sistema, você se deparou com o seguinte código: if(!is_dir('relatorios')){ mkdir('relatorios'); } 1 em 1 pontos 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 2/8 Resposta Selecionada: d. Respostas: a. b. c. d. e. Comentário da resposta: $relatorios = scandir('relatorios'); echo '<ul>'; foreach($relatorios as $r){ echo '<li>' . $r . '</li>'; } echo '</ul>'; Sobre o código, é correto afirmar: vai mostrar todos os arquivos no diretório “relatórios”, incluindo “.” e “..”; se o diretório “relatórios” não existir, o script vai falhar; vai mostrar todos os arquivos no diretório “relatórios”, com exceção de “.” e “..”; a variável $r guarda um file handle, referenciando cada um dos arquivos; vai mostrar todos os arquivos no diretório “relatórios”, incluindo “.” e “..”; o HTML gerado pelo script é inválido. A alternativa D é a correta. O comando scandir retorna uma lista dos nomes de arquivos e diretórios disponíveis no diretório $d (incluindo '.' e '..'). Pergunta 3 Resposta Selecionada: e. Respostas: a. Analise o código a seguir: <form> <input type="checkbox" name="contatos[]" id="joao" value="João"> <label for="joao"> João </label> <input type="checkbox" name="contatos[]" id="ana" value="Ana"> <label for="ana"> Ana </label> <button type="submit">Enviar</button> </form> Ao marcar todas as opções e clicar “enviar”, o conteúdo da variável $_GET será: ["contatos" => ["João", "Ana"]]. Haverá um erro no código, pois apenas uma das opções pode ser escolhida 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 3/8 b. c. d. e. Comentário da resposta: ["João", "Ana"]; ["joao", "ana"]; ["joao" => true, "ana" => true]; ["contatos" => ["João", "Ana"]]. A alternativa E é a correta. ["contatos" => ["João", "Ana"]]. Sempre recebemos o campo name de cada input como uma chave no nosso array associativo $_GET. Quando o name tem essa notação de colchetes, o conteúdo da chave será um array com os values de todas as opções selecionadas. Pergunta 4 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Ao estudar sobre upload de arquivos em PHP, você encontrou o seguinte código, incompleto: if(array_key_exists('foto', $_FILES)){ echo "Nome original do arquivo: " . _______; } ?> <form enctype="multipart/form-data" method="POST"> <input name="foto" type="file" /> <button type="submit">Enviar</button> </form> Qual seria o trecho de código que complementa o espaço em branco com o nome original do arquivo enviado pelo usuário? $_FILES['foto']['name']. $_FILES['name']; $f['name']; $foto['name']; $_FILES['foto']; $_FILES['foto']['name']. A alternativa E é a correta. $_FILES é um array associativo, em que as chaves correspondem aos nomes dos arquivos enviados. Cada chave guarda também um array associativo, em que uma das chaves disponíveis é a chave name. 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 4/8 Pergunta 5 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Considere a seguinte classe, em PHP: class Cachorro{ private $nome; public function __construct($n) { $this->nome = $n; } public function getNome(){ return $this->nome; } public function latir(){ echo 'Au!'; } } Qual o termo que completa a afirmação abaixo? “Nome é _____ da classe cachorro.” Uma propriedade. Um método. Uma propriedade. Um construtor. Uma instância. Um encapsulamento. A alternativa B é a correta. Uma variável, quando está dentro de uma classe, recebe o nome de propriedade da classe. Pergunta 6 Resposta Selecionada: e. Respostas: a. O PHP, em sua biblioteca-padrão, nos fornece uma série de funções para manipular diretórios: criar, ler, remover, fazer verificações, etc. Sobre essas funções, é correto afirmar que: a função is_dir verifica se um dado caminho é um diretório. a função scandir ignora automaticamente os arquivos “.” e “..”; 1 em 1 pontos 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 5/8 b. c. d. e. Comentário da resposta: a função rmdir vai remover o diretório e seus conteúdos; a função chdir move um diretório para outra localização; a função getcwd sempre retorna a raiz do projeto atual; a função is_dir verifica se um dado caminho é um diretório. A alternativa E é a correta. A função is_dir verifica se o caminho passado por parâmetro existe e é um diretório. Pergunta 7 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: Seu colega de trabalho, João, sempre trabalhou como front-end, ou seja, desenvolvendo em HTML, CSS e JavaScript. Porém, para manter o projeto atual dentro do cronograma, a empresa decidiu realocar o João temporariamente para ajudar na equipe de back-end, e você é o responsável por tirar as dúvidas dele. Nunca tendo trabalhado com PHP na vida, ele está com dificuldade para entender os arquivos .php. Podemos afirmar para o João que, em um arquivo .php: a função primária é gerar o HTML para enviar como resposta à requisição; a função primária é gerar o HTML para enviar como resposta à requisição; podemos escrever apenas código PHP, e não podemos colocar tags HTML; o uso de ponto e vírgula ao fim de cada linha é sempre opcional; os arquivos são executados pelo navegador (browser) do cliente; os arquivos são pré-compilados para HTML, e nossa aplicação se transforma em uma aplicação estática. A alternativa A é a correta. Sua função primária é gerar o HTML para enviar como resposta à requisição.O motivo de escrevermos um código PHP em primeiro lugar é gerar dinamicamente respostas em HTML para as requisições. O arquivoPHP pode conter tags HTML e é executado pelo servidor a cada requisição feita. Pergunta 8 1 em 1 pontos 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 6/8 Resposta Selecionada: d. Respostas: a. b. c. d. e. Comentário da resposta: O protocolo HTTP define o que chamamos de métodos (também chamados de verbos). Entre eles, podemos destacar os métodos GET e POST. Esses dois ocupam uma posição especial dentre os métodos, pois são os únicos que podem ser feitos por padrão no navegador via HTML, sem interferência de JavaScript. Sabemos que uma forma de fazer isso é através dos formulários, em que podemos colocar o atributo method e escolher se, ao enviar aquele formulário, faremos uma requisição GET ou POST. Assim, sobre esses métodos e o seu uso em formulários, é correto afirmar que: o método GET expõe os parâmetros na URL, enquanto o POST faz isso de forma oculta do usuário; o método GET não envia informação nenhuma ao servidor, já que serve apenas para “pegar” informação; o método POST não recebe informação nenhuma do servidor, já que serve apenas para enviar informação; ambos os métodos são exatamente iguais, e só nos referimos a eles por questões de código legado; o método GET expõe os parâmetros na URL, enquanto o POST faz isso de forma oculta do usuário; se não for especificado um método no formulário, está implícito que este formulário usa o método POST; A alternativa D é a correta. O método GET expõe os parâmetros na URL, enquanto o POST faz isso de forma oculta do usuário. O método GET faz uso da query string¸ que é a parte da URL que tem o formato “?nome=valor”. Já o método POST faz isso “por baixo dos panos”, sem mostrar para o usuário. Pergunta 9 Suponha que temos a seguinte função em PHP: function fib($x){ if($x < 2){ return 1; } 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 7/8 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: return fib($x-1) + fib($x-2); } Sobre essa função, é correto afirmar que: é uma função recursiva; há um erro de sintaxe que precisa ser corrigido, pois uma função não pode chamar a si mesma; é uma função recursiva; é uma função anônima; é uma função que recebe valores por referência; há um erro de lógica na função, e ela nunca terminará de executar. A alternativa B é a correta. Uma função recursiva é uma função que chama a si mesma. A função em questão irá calcular o n-ésimo termo da sequência de Fibonacci, indexada por 0. Pergunta 10 Resposta Selecionada: d. Respostas: a. b. c. d. João começou a ser muito produtivo na empresa esta semana! Ele terminou praticamente toda a parte designada a ele do sistema, e perguntou se vocês poderiam fazer uma revisão do código (code review). Você percebe, em primeiro lugar, que o código PHP de João evoluiu muito desde que começou a aprender a linguagem, e o parabeniza por isso. No entanto, você nota que ele misturou os comandos require e include completamente ao acaso. Você, portanto, explica ao João que: a diferença entre os comandos está quando importamos um arquivo que não existe; não há diferença alguma entre os dois comandos, mas é uma boa ideia manter uma padronização; o comando require é usado para importar arquivos baixados da internet, enquanto o include é usado para incluir bibliotecas-padrão do PHP; ambos os comandos precisam estar sempre no começo do arquivo; 1 em 1 pontos 04/09/2022 14:42 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_26391198_1&course_id=_190137_1&content_id=_850841… 8/8 Domingo, 4 de Setembro de 2022 14h41min48s BRT e. Comentário da resposta: a diferença entre os comandos está quando importamos um arquivo que não existe; o comando require está depreciado e será removido em uma versão futura do PHP. A alternativa D é a correta. A diferença entre os comandos está quando importamos um arquivo que não existe.Ao importar um arquivo inexistente, o require vai emitir um erro fatal, enquanto o include emite apenas um warning.