Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 Autores: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 21 de Abril de 2020 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 1 156 Sumário 1 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML) ............................................................................. 2 1.1 CAIU NA PROVA – AJAX (DIVERSAS BANCAS) ......................................................................... 6 2 PHP ................................................................................................................................................ 18 2.1 INTRODUÇÃO ........................................................................................................................ 18 2.2 EXERCÍCIOS COMENTADOS ................................................................................................... 36 3 FRAMEWORK .NET ........................................................................................................................ 80 3.1 INTRODUÇÃO ........................................................................................................................ 80 3.2 VISUAL STUDIO...................................................................................................................... 80 3.3 EXERCÍCIOS COMENTADOS: FRAMEWORK .NET .................................................................. 84 4 ASP ................................................................................................................................................ 91 4.1 ASP: TIPOS DE ARQUIVOS APLICAÇÃO ASP .NET MVC .......................................................... 91 4.2 ASP: VIEW .............................................................................................................................. 92 4.3 ASP: CONTROLLER ................................................................................................................. 93 4.4 ASP: SESSÃO .......................................................................................................................... 94 4.5 ASP: IDENTITY FRAMEWORK................................................................................................. 95 4.6 ASP: ASP CLÁSSICO - O OBJETO REQUEST ............................................................................. 95 4.7 CAIU NA PROVA .................................................................................................................... 96 5 LISTAS DE EXERCÍCIOS ................................................................................................................. 108 5.1 LISTA DE EXERCÍCIOS – AJAX (DIVERSAS BANCAS) .............................................................. 108 5.2 LISTA DE QUESTÕES: JQUERY .............................................................................................. 115 5.3 LISTA DE EXERCÍCIOS: PHP .................................................................................................. 122 5.4 LISTA DE EXERCÍCIOS: FRAMEWORK .NET .......................................................................... 142 5.5 LISTA DE EXERCÍCIOS – ASP ................................................................................................. 146 6 GABARITOS .................................................................................................................................. 155 6.1 GABARITO – AJAX (DIVERSAS BANCAS) .............................................................................. 155 6.2 GABARITO: PHP ................................................................................................................... 155 6.3 GABARITO: FRAMEWORK .NET ........................................................................................... 155 6.4 ASP ...................................................................................................................................... 155 Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 2 156 1 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML) O desenvolvimento de aplicações desktop apresenta uma riqueza que, por muito tempo, pareceu fora do alcance das aplicações web, gerando um gap no nível de experiência do usuário com a aplicação. A riqueza de interação e o grau de responsividade das aplicações desktop davam um banho nas aplicações web, mas esse gap diminuiu com a criação do AJAX! Professor, AJAX é uma tecnologia? Não, é um conjunto de tecnologias, cada uma com seu propósito, que se juntam harmonicamente para melhorar a experiência do usuário, tornando páginas web mais ricas e interativas. Professor, que tecnologias são essas? Jessé Garret, criador do AJAX, afirmou em um artigo que ela incorpora as seguintes tecnologias: ▪ Apresentação: utiliza XHTML e CSS; ▪ Interação e Exibição dinâmicas: utiliza DOM; ▪ Manipulação e Intercâmbio de Dados: utiliza XML e XSLT; ▪ Recuperação Assíncrona de Dados: utiliza XMLHttpRequest; ▪ e JavaScript para reunir todas essas tecnologias. Vamos ver rapidamente cada uma dessas tecnologias: TECNOLOGIAS DESCRIÇÃO XHTML Trata-se de uma linguagem de marcação que estende o HTML para criação de páginas web de forma mais acessível e interoperável; CSS Trata-se de uma linguagem de folhas de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação; DOM Trata-se de um modelo de objetos de documentos para criação de interfaces dinâmicas e editáveis independentes de linguagem e plataforma; XML Trata-se de uma linguagem de marcação para propósitos especiais de intercâmbio e compartilhamento de dados; XSLT Trata-se de uma linguagem de marcação usada para transformar documentos XML em outros documentos ou objetos. XMLHttpRequest Trata-se de um objeto utilizado para enviar e receber requisições HTTP assincronamente. JavaScript Trata-se de uma linguagem de programação de scripts interpretada e client-side. Galera, um modelo de aplicação web clássica funciona mais ou menos assim: o usuário envia uma Requisição HTTP ao Servidor Web. Esse realiza algum tipo de Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 3 156 processamento (recupera dados, manipula números, etc) e retorna uma Página HTML ao cliente. Essa abordagem faz muito sentido, mas não oferece uma boa experiência ao usuário. O que faz o usuário enquanto o servidor está realizando seus processamentos? Nada, só espera! E, a cada nova tarefa, espera novamente. Quem aí gosta de esperar? Quem curte um belo chá-de-cadeira? Ninguém! Por que toda vez que o usuário requisitar algo é obrigatório que haja uma interrupção na interface? Ora, uma vez que a interface foi carregada, o usuário está pouco se importando com o resto. As Aplicações AJAX eliminam esse inicia-interrompe-inicia-interrompe ao introduzir uma camada chamada Engine AJAX entre o usuário e o servidor! Em vez de carregar uma página web, ao iniciar a sessão, o navegador carrega a Engine AJAX (escrita em JavaScript). Ela permite que a interação do usuário com a aplicação ocorra de forma assíncrona – independente de comunicação com o servidor. Portanto, o usuário jamais fica olhando para uma tela branca do navegador, sem fazer nada e esperando que o servidor faça seu trabalho. Toda ação do usuário que normalmente gera uma Requisição HTTP se transforma em uma chamada JavaScript à Engine AJAX. Qualquer respostaque não requeira uma viagem de volta ao servidor (Ex: validação de dados, etc) é manipulada pela própria Engine AJAX. Se ela necessitar de alguma coisa do servidor, a Engine AJAX realiza as requisições assincronamente, geralmente utilizando XML – sem enrolar a interação do usuário com a aplicação. A imagem abaixo apresenta a diferença entre uma aplicação web clássica que utiliza uma comunicação síncrona com o servidor e uma aplicação web AJAX que utiliza uma comunicação assíncrona com o servidor. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 4 156 O Objeto XMLHttpRequest é utilizado para trocar dados com o servidor de forma assíncrona. Alguns dizem que ele é o sonho de um desenvolvedor, porque pode- se atualizar uma parte de uma página web sem precisar recarregar a página inteira; é possível requerer e receber dados do servidor após a página ser carregada; e é possível enviar dados ao servidor em background. Todos os navegadores modernos (IE7+, Firefox, Chrome, Safari e Opera) possuem uma Objeto XMLHttpRequest embutido. A sintaxe para criá-lo é bem simples: xmlhttp = new XMLHttpRequest(); Todos navegadores modernos possuem um Parser XML! Ele converte um documento XML em um DOM, que pode ser manipulado com JavaScript. Ele define uma forma padrão de acessar e manipular documentos XML de maneira hierárquica. Dessa forma, todos os elementos podem ser acessados por meio da Árvore DOM! Para capturar a resposta do servidor, existem duas possibilidades: utilizar as propriedades responseXML ou responseText. O segundo recupera dados como uma string, em forma de texto; e o primeiro recupera dados como um Objeto DOM, em formato XML! É possível, ainda, capturar dados em outros formatos, tais como: HTML e JSON! Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 5 156 No AJAX, o objeto XMLHttpRequest possui diversas propriedades importantes para realizar a comunicação com o servidor. Quando uma solicitação para um servidor é enviada, normalmente deseja-se executar algumas ações com base na resposta. Existe um evento chamado onreadystatechange, responsável por especificar o que vai acontecer quando o servidor processar a resposta. Há três propriedades: ▪ Onreadystatechange: armazena uma função a ser chamada de forma automática cada vez que a propriedade readyState mudar; ▪ readyState: armazena o status do XMLHttpRequest. o 0: Requisição não iniciada; o 1: Conexão com servidor estabelecida; o 2: Requisição recebida; o 3: Requisição processada; o 4: Requisição finalizada e resposta pronta. ▪ Status: o 200: “Ok”. o 404: Página não-encontrada. AJAX apresenta uma grande desvantagem: se o usuário desativar o JavaScript de seu navegador, a aplicação pode parar de funcionar. No entanto, há diversas vantagens: executa processos em paralelo às requisições/respostas; manipula XML nas aplicações para desktop de forma simples; troca mensagens de forma assíncrona; entre outras. Por fim, alguns desenvolvedores utilizam iFrames para embutir aplicações interativas em páginas web, incluindo aquelas que empregam AJAX (Ex: Google Maps). O iFrame é utilizado para embutir um Documento HTML em outro Documento HTML. Ele é frequentemente utilizado também para inserir conteúdo de outra fonte (como uma propaganda) em uma página web. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 6 156 1.1 CAIU NA PROVA – AJAX (DIVERSAS BANCAS) 1. (FCC – 2007 – TRE/MS – Analista de Sistemas) Asynchronous Javascript and XML (Ajax) é uma técnica de desenvolvimento de aplicações web cujo objetivo é a troca de pequenas porções de dados entre um browser e um servidor web de modo a evitar a recarga de toda a página cada vez que um cliente solicita uma mudança. Sobre Ajax considere as afirmativas abaixo. I. É uma técnica indicada para melhorar a experiência do usuário, reduzir a utilização de banda e claramente separar dados, formatação, estilo e funcionalidade. II. O modelo de objetos html/xml (DOM) é acessado e transformado por linguagens de script como JavaScript. III. O objeto XMLHttpRequest e/ou o objeto iFrame são utilizados para troca de dados assíncrona com o servidor. É correto o que se afirma em: a) I, apenas. b) II, apenas. c) III, apenas. d) I e III, apenas. e) I, II e III. Comentários: (I) Perfeito, perfeito, perfeito, nada a acrescentar; (II) Sim, item perfeito também; (III) Também está correto! Pode-se utilizar o iFrame (Inline Frame) para embarcar aplicações interativas em páginas web. Gabarito: E 2. (FCC - 2008 – MPE/RS – Analista de Sistemas) Para capturar as respostas de uma aplicação Web dinâmica em AJAX básico utiliza-se somente: a) responseText e responseXML. b) responseText e responseHTML. c) responseText. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 7 156 d) responseXML. e) responseHTML. Comentários: Trata-se da primeira opção: responseText e responseXML. Gabarito: A 3. (FCC - 2008 – MPE/RS – Analista de Sistemas) Dentre as tecnologias que compõem o AJAX, aquelas que têm como principal função fazer o intercâmbio e a manipulação de dados são: a) JavaScript e XMLHttpRequest. b) XML e XSLT. c) HTML e XHTML. d) JavaScript e CSS. e) DOM e CSS. Comentários: - Apresentação: HTML/XHTML e CSS; - Exposição e Interação Dinâmica: DOM; - Intercâmbio de Dados: XML ou JSON; - Manipulação de Dados: XSLT; - Recuperação Assíncrona de Dados: XMLHttpRequest; * JavaScript é o responsável por reunir todas essas tecnologias. Gabarito: B 4. (FCC - 2008 – MPE/RS – Tecnólogo) Para fazer o intercâmbio e a manipulação de dados em uma aplicação Web, o modelo AJAX normalmente utiliza: a) XML e XSLT. b) HTML, XHTML e CSS. c) XMLHttpRequest. d) JavaScript. e) DOM. Comentários: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 8 156 - Apresentação: HTML/XHTML e CSS; - Exposição e Interação Dinâmica: DOM; - Intercâmbio de Dados: XML ou JSON; - Manipulação de Dados: XSLT; - Recuperação Assíncrona de Dados: XMLHttpRequest; * JavaScript é o responsável por reunir todas essas tecnologias. Gabarito: A 5. (FCC - 2012 – TJ/PE – Analista de Sistemas) Esse objeto é o ponto chave do AJAX. Pode ser considerado um objeto Javascript que torna possível a comunicação assíncrona com o servidor. O objeto citado é do tipo: a) XMLRequest. b) XMLAjaxActiveXObject. c) HttpServletResponse. d) HttpServletRequest. e) XMLHttpRequest. Comentários: O objeto responsável pela comunicação assíncrona com o servidor é chamado: XMLHttpRequest. Gabarito: E 6. (FCC - 2011 – TCE/PR – Analista de Sistemas) No AJAX, o objeto XMLHttpRequest possui diversas propriedades importantes para realizar a comunicaçãocom o servidor. Quando uma solicitação para um servidor é enviada, normalmente deseja-se executar algumas ações com base na resposta. O evento utilizado para especificar o que vai acontecer quando a resposta do servidor está pronta para ser processada é o: a) oncompletedrequest. b) onserverreturn. c) onendstatus. d) onreadystatechange. e) onreadystate. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 9 156 Comentários: Trata-se do onreadystatechange. Gabarito: D 7. (FCC - 2011 – INFRAERO – Analista de Sistemas) Representa uma desvantagem do uso de AJAX: a) Troca mensagens entre o cliente e o servidor de forma assíncrona, ou seja, envia requisições e continua o processamento sem precisar aguardar a resposta. b) Trata-se principalmente de JavaScript que executa no navegador do usuário. Se for desativado o processamento do JavaScript no navegador, a aplicação pode falhar. c) Recebe respostas às requisições na mesma página sem a necessidade de refresh. d) Executa os processos em paralelo às requisições/respostas. e) Manipula o conteúdo XML nas aplicações para desktop de forma simples. Comentários: Todas apresentam vantagens, exceto a segunda opção! De fato, se o usuário desativar o JavaScript em seu navegador, a aplicação pode falhar e essa é uma grande desvantagem do AJAX. Gabarito: B 8. (FCC - 2011 – TRE/RN – Analista de Sistemas) Agrega um conjunto de tecnologias conhecidas trabalhando juntas para tornar páginas Web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações: a) XML. b) JavaScript. c) XHTML. d) AJAX. e) CSS. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 10 156 Comentários: Trata-se obviamente do AJAX! Gabarito: D 9. (FGV - 2010 – FIOCRUZ – Analista de Sistemas) Asynchronous JavaScript and XML (AJAX) é um termo criado recentemente para duas características poderosas dos browsers que existem há anos mas tem sido ignoradas por muitos criadores de páginas web até recentemente, quando aplicações como Gmail, Google suggest e Google Maps foram lançadas. AJAX não é uma tecnologia, na verdade, envolve várias, cada uma atuando da sua própria maneira, tornando- se juntas uma poderosa ferramenta. Nesse contexto, além de suporte à Javascript, analise as afirmativas abaixo, associadas às tecnologias incorporadas pelo AJAX. I. Troca e manipulação de dados usando XML e XSLT. II. Retorno de dados assincronamente usando XMLHttpRequest. III. Apresentação baseada nas Web Standards usando XHTML e CSS. Assinale: a) se somente a afirmativa I estiver correta. b) se somente a afirmativa II estiver correta. c) se somente a afirmativa III estiver correta. d) se somente as afirmativas II e III estiverem corretas. e) se todas as afirmativas estiverem corretas. Comentários: Todos os itens estão corretos! Gabarito: E 10. (CESGRANRIO - 2006 – DNPM – Analista de Sistemas) AJAX é um termo que se refere a um conjunto de tecnologias para desenvolvimento de aplicações WEB. Assinale a opção que contempla uma dessas tecnologias. a) Ant b) XML c) WiMAX d) VoIP Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 11 156 e) Jakarta Comentários: AJAX contempla JavaScript e XML! Gabarito: B 11. (CESGRANRIO - 2007 – EPE – Analista de Sistemas) Que conjunto de tecnologias é utilizado em aplicações WEB na Internet para propiciar forte interatividade e dinamismo? a) CSS b) SMTP c) AJAX d) FTP e) UTF-8 Comentários: Trata-se do AJAX! Ele é um conjunto de tecnologias que propiciam forte interatividade e dinamismo. Gabarito: C 12. (CESGRANRIO - 2009 – CMB – Analista de Sistemas) AJAX (do inglês Asynchronous Javascript And XML) tem sido largamente utilizado no desenvolvimento de aplicações WEB. Um dos conceitos centrais do AJAX é a possibilidade de serem feitas requisições ao servidor através de código Javascript, rodando no navegador do usuário. Esse recurso é empregado principalmente para permitir que: a) o processamento das regras de negócio da aplicação seja distribuído aos clientes, minimizando a carga do servidor. b) o usuário envie uma requisição assíncrona e verifique o resultado da mesma mais tarde, sem precisar aguardar pela resposta imediata do servidor. c) as páginas carreguem mais rapidamente, pois as requisições são paralelizadas e compactadas durante o trânsito. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 12 156 d) as páginas compostas diretamente em XML, ao invés de XHTML ou HTML, sejam apresentadas no navegador do usuário. e) partes de uma página web sejam atualizadas, sem que o browser recarregue a página inteira do servidor, proporcionando uma interface com melhor usabilidade. Comentários: (a) Não, o processamento das regras de negócio continua sendo no Servidor; (b) Não há nada de errado com esse item, no entanto o recurso não é empregado principalmente para isso! Eu posso verificar o resultado mais tarde? Sim, mas o Ajax é utilizado principalmente para que eu possa verificar o resultado imediatamente sem a necessidade de recarregar a página inteira; (c) Não, é para que partes das páginas recarreguem de forma dinâmica e interativa; (d) Não, são apresentadas como XHTML ou HTML; (e) Perfeito, é exatamente isso! Gabarito: E 13. (CESGRANRIO - 2010 – IBGE – Analista de Sistemas) O código HTML, em construção, abaixo demonstra a utilização de AJAX. <html> <head> <script language=”JavaScript”> function submitForm() { var xhr=null; try { xhr = new object(); } catch(e) {} xhr.onreadystatechange = function() { document.ajax.dyn.value=”Wait server...”; if(xhr.readyState == 4) { if(xhr.status == 200) { document.ajax.dyn.value=”Recebido:” + xhr.responseText; } else { document.ajax.dyn.value=”Erro: “ + xhr.status + “ “ + xhr.statusText; } } }; xhr.open(“GET”, “data.xml”, true); xhr.send(null); } </script> </head> <body> <FORM method=”POST” name=”ajax” action=””> Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 13 156 <INPUT type=”submit” value=”Submit” ONCLICK=”submitForm()”> <INPUT type=”text” name=”dyn” value=””> </FORM> </body> </html> Para que esse código possa utilizar a tecnologia AJAX, na linha “xhr = new object();”, “xhr” deve receber um objeto Javascript que torna possível a comunicação assíncrona com o servidor, sem a necessidade de recarregar a página por completo. Para tanto, no código acima, “object” deve ser substituído por: a) responseXML. b) MIME. c) XMLHttpRequest. d) DOMParser. e) setRequestReader. Comentários: Trata-se do Objeto XMLHttpRequest. Gabarito: C 14. (CESGRANRIO - 2010 – PETROBRÁS – Analista de Sistemas) Ajax não é meramente umatecnologia. É uma abordagem moderna para desenvolvimento de sites iterativos. A abordagem de desenvolvimento tradicional tem semelhanças e diferenças em relação ao Ajax. Uma característica exclusiva de Ajax em relação à abordagem tradicional é que: a) executa as requisições através do protocolo HTTP. b) usa javascript como linguagem para desenvolver código no lado do cliente. c) usa (x)html / css para definir o aspecto visual da página. d) permite recuperação assíncrona de dados usando XMLHttpRequest. e) representa os objetos no lado cliente com DOM. Comentários: A única opção que apresenta uma característica de fato exclusiva em relação à abordagem tradicional é quarta opção: permite recuperação assíncrona de dados usando XMLHttpRequest. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 14 156 Gabarito: D 15. (CESGRANRIO - 2011 – LIQUIGÁS – Analista de Sistemas) Duas das tecnologias que compõem o Ajax são: a) DOM e CSS b) ASP e XML c) Java e XML d) Java e CSS e) JavaScript e ASP Comentários: DOM? Sim! CSS? Sim! ASP? Não! XML? Sim! Java? Não! JavaScript? Sim! Portanto, é a primeira opção: DOM e CSS! Gabarito: A 16. (CESGRANRIO - 2013 – LIQUIGÁS – Analista de Sistemas) Considere as afirmativas a seguir sobre a tecnologia AJAX. I – Uma das aplicações mais frequentes da tecnologia AJAX é na atualização assíncrona do conteúdo de páginas HTML. II – Boa parte da funcionalidade da tecnologia AJAX é viabilizada pelo objeto XMLHttpRequest, que é capaz de transmitir requisições HTTP de modo assíncrono. III – A tecnologia AJAX utiliza código Java para a manipulação do conteúdo de páginas HTML. Está correto o que se afirma em: a) I, apenas b) II, apenas c) I e II, apenas d) II e III, apenas e) I, II e III Comentários: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 15 156 (I) Sim, perfeito! (II) Sim, perfeito! (III) Não, utiliza DOM! Gabarito: C 17. (CESGRANRIO - 2014 – IBGE – Analista de Sistemas) Com o objetivo de criar páginas dinâmicas para o desenvolvimento de aplicações web, AJAX é um termo que descreve um(a): a) protocolo b) banco de dados c) coleção de tecnologias d) linguagem de programação e) linguagem de marcação Comentários: AJAX é um conjunto de tecnologias, tais como: XML, JSON, XSTL, HTML, XHTML, DOM, JavaScript, CSS e XMLHttpRequest. Gabarito: C 18. (FGV – 2015 – TCM-SP – Agente de Fiscalização – Tecnologia da Informação) Considere a requisição AJAX construída, no cliente, através da chamada à seguinte função em Javascript: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 16 156 O método HTTP utilizado na requisição ao servidor será, neste caso: a) PUT; b) POST; c) GET; d) HEAD; e) SEND. Comentários: Neste caso, a requisição ao servidor está representada na variável ajax = new XMLHttpRequest() e sua chamada em ajax.open("POST", “PUT.PHP”, true); O protótipo do método open, neste caso, é XMLHttpRequest.open(method, url, async), logo o método HTTP a ser utilizado é o POST. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 17 156 Vale notar que as strings GET e PUT foram usadas apenas para confundir o aluno, sendo elas, apenas, parte da mensagem e url de envio, respectivamente. Gabarito: B ACERTEI ERREI Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 18 156 2 PHP 2.1 INTRODUÇÃO O ano era 1994! Um programador dinamarquês chamado Rasmus Lerdorf criou uma série de scripts em Perl para utilizar em coisas simples de sua página pessoal. Empolgado com o resultado, ele reescreveu esses scripts em C – por questões de desempenho –, adicionando a capacidade de trabalhar com formulários web e bancos de dados. Assim era possível criar páginas web dinâmicas, possibilitando que um navegador passasse parâmetros para outros programas alocados em um servidor web. Lerdorf condensou tudo isso em um pacote de scripts e chamou de Personal Home Page tools (PHP), que, inicialmente, não tinha a menor intenção de ser uma linguagem de programação. Enfim, essa ideia evoluiu rapidamente e, no ano seguinte, foi lançado o PHP/FI (FI = Forms Interpreter), que incluía um interpretador de comandos SQL. Ele, então, resolveu publicar em um grupo de discussões (cujo link é apresentado a seguir), de modo a encontrar bugs e melhorar o código por meio das contribuições da comunidade. Um pouco mais tarde, dois programadores israelenses chamados Zeev Suraski e Andi Gutmans se juntaram para reescrever o parser, formando a base do PHP3, e modificando o nome da linguagem para PHP Hypertext Preprocessor (PHP). Em seguida, ambos começaram a reescrever o núcleo da linguagem, produzindo o Zend Engine! E o que era Zend Engine, professor? Bem, o nome vinha da junção de Zeev e Andi. Ele era o interpretador do PHP! Mais adiante, foi lançado o PHP4 com mais recursos de orientação a objetos, porém com problemas sérios em relação aos ponteiros. Em 2004, foi lançado o PHP5 com inúmeras melhorias de performance e funcionalidades – atualmente está na versão 7.1.0. Bem... dado esse breve histórico, vamos dar continuidade! Professor, afinal de contas o que é PHP? Ora, é uma linguagem de programação de scripts, interpretada, de Grupo de Discussões https://groups.google.com/forum/#!msg/comp.infosystems.www.authoring.cgi/PyJ25gZ6z7A/M9FkTUVDfcwJ Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 19 156 alto nível, open-source, gratuita, server-side, dinamicamente/fracamente tipada, estruturada e orientada a objetos, portável, robusta e eficiente utilizada para desenvolvimento web. Caraca, foi tanta coisa de uma vez que nem eu entendi! Vamos explicar por partes! Primeiro de tudo, é uma linguagem de programação de scripts, portanto – obviamente – ela serve para programar scripts! E o que é isso, professor? É um conjunto de instruções que geralmente são executadas dentro de outras linguagens e/ou programas. Voltando, então! O PHP é uma linguagem de programação de scripts, i.e., escreve scripts que estendem as funcionalidades de outra linguagem de programação e/ou programas. Ok! Mas a definição diz que ela é interpretada! Bem, isso só complementa o que acabamos de ver, visto que todas as linguagens de script são interpretadas. Percebam que aqui não ocorre compilação, criação de código-objeto, nada disso! A Máquina Virtual recebe o código-fonte, interpreta e roda instrução a instrução em tempo de execução. Bacana?! E PHP é uma linguagem de altonível? Sim, essa é fácil! É uma linguagem que se aproxima mais da linguagem humana do que da linguagem de máquina! O nível de abstração é alto, i.e., o programador não acessa ponteiros, não manipula a memória, não escova bits, nada disso! Logo, é uma linguagem de alto nível. E ela é open-source? Sim! Na verdade, o PHP é atualmente o software open-source mais utilizado em empresas no planeta1, i.e., código aberto, distribuição livre e aquele blábláblá todo! Ele também é gratuito! Ué, professor... você já disse que ele é livre! Sim, mas ser livre não significa ser gratuito. No entanto, nesse caso ele é livre e gratuito! Ok, e ela é server-side! Isso significa que, no contexto de uma arquitetura cliente-servidor, todo processamento do código PHP ocorre no servidor e, não, no cliente. Ahhh professor! Então toda linguagem de programação de scripts são server-side? Claro que não! JavaScript, por exemplo, roda do lado do cliente, i.e., é uma linguagem client-side! Simples, né?! Ela também é dinamicamente e fracamente tipada! O primeiro significa que os tipos das variáveis podem ser modificados em tempo de execução. 1 Está instalado em mais de 244 milhões de websites e 2.1 milhões de web servers. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 20 156 Portanto, é possível que uma variável inteira se transforme em booleana durante a execução do programa. Já o segundo significa que não é obrigatório declarar o tipo da variável. Portanto, é possível usar uma variável sem declarar seu tipo, que será decidido, também, durante a execução do programa. O PHP suporta tanto programação estruturada quanto programação orientada a objetos. Simples assim! Calma, galera... estamos acabando! PHP é portável, i.e., ela é independente de plataforma. Costuma-se dizer que é uma Linguagem WORA (Write Once, Run Anywhere). Ela é capaz de rodar sobre Windows, Linux, Unix, etc. PHP é uma linguagem robusta! Ora, não é muito difícil adivinhar isso. É uma linguagem bastante antiga, intensamente testada e continuamente melhorada. É comum que códigos escritos há muitos anos continuem funcionando perfeitamente hoje em dia! E PHP é eficiente? Sim! Consome poucos recursos do servidor e é, em geral, veloz. Por fim, PHP é utilizada para desenvolvimento de conteúdo dinâmico na web, mas não só isso! Pode ser usado como uma linguagem de propósito geral, sendo útil em interfaces gráficas ou em linha de comando. Agora veremos seu funcionamento! Primeiramente, para que ele funcione, é preciso que esteja instalado em um Servidor Web. Professor, eu não sei o que é um servidor web! Grosso modo, é um software que recebe Requisições HTTP e devolve Respostas HTTP. Grosso modo, trata-se de clientes representados por navegadores web requisitando páginas web, documentos, dados, etc. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 21 156 Os Servidores Web mais populares são Apache (Software Livre) e IIS (Software Proprietário). Uma vez instalado, configura-se o PHP, reinicia-se o servidor e está pronto para usar! Galera, o PHP fica embutido dentro do código HTML! Portanto, dentro da tag <body> do HTML, encontra-se a tag <?php> do PHP! Vamos ver um exemplo abaixo: Suponhamos que esse código foi salvo com o nome de olamundo.php e inserido no diretório raiz do servidor web www.exemplo.com. Bem, quando o cliente digitar o endereço www.exemplo.com/olamundo.php em seu navegador web, o servidor web irá procurar em seus diretórios, processando a página olamundo.php. Processando como, professor? Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 22 156 Ele irá interpretar o código PHP, executando tudo que for requisitado, substituir tudo que estiver dentro das tags PHP por código HTML puro e enviará o resultado para o usuário. Esse resultado é o código escrito acima? Não, é o código processado, como é apresentado abaixo: Percebam que esse não é o código que foi escrito originalmente, i.e., esse é o código processado em que as tags PHP foram substituídas por tags HTML! Se tentarmos visualizar o código fonte da página recebida, não seremos capazes de ver código PHP, veremos apenas código puro HTML. Simples, não?! Ademais, todo código PHP deve estar delimitado, como mostra o código abaixo: Os comentários seguem o mesmo padrão da linguagem C em uma ou mais linhas, como mostra o código abaixo: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 23 156 Falemos agora sobre variáveis! Bem, toda variável começa com o símbolo “$”. A seguir, a nomenclatura segue a seguinte regra de formação (Case Sensitive): Letra|Underscore + Letra|Número|Underscore Galera, agora vamos ver outra coisa básica! As variáveis podem ser do tipo Texto, Numérico ou Booleanas, como vemos no exemplo a seguir! Observem que as variáveis do Tipo Texto podem ser declaradas com aspas simples ou duplas. Ademais, os valores das variáveis do Tipo Booleano não são Case Sensitive, logo TRUE = true e FALSE = false. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 24 156 Agora uma coisa muito maneira em PHP: variáveis podem ter seu nome designado em tempo de execução. Como assim, professor? Isso não é impossível? Não! Vejam: Cara, isso é muito legal! Observem o que acontece: a variável do tipo texto $var1 contém a string “Hello”. Já a variável do tipo texto $Hello contém a string “World”. Em seguida, pede-se para imprimir $var1, i.e., “Hello”. Depois, pede-se para imprimir $$var1, mas $var1 = “Hello”, logo pede-se para imprimir $Hello, i.e., “World”. Resultando em “Hello World”. Bacana, não?! Parêntesis ajudam a visualizar melhor: $($var1) = $(Hello) = “World”. Essa flexibilidade do PHP é bastante interessante! Vejamos agora como são os principais tipos de operadores utilizados na linguagem: aritméticos, associação, comparação, incremento e decremento, e lógicos. Observem no exemplo abaixo o primeiro tipo: ❖ Operadores Aritméticos: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 25 156 ❖ Operadores Associativos: ❖ Operadores Comparativos: ❖ Operadores Incrementais/Decrementais: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 26 156 ❖ Operadores Lógicos: Bem, pessoal. É impossível esgotar todo assunto de PHP em uma aula online, ademais o intuito aqui não é ensinarninguém a programar. Portanto, não vou explicar para cada linguagem como funciona conceitos básicos (Ex: laço condicional, laço de repetição), porque eles funcionam quase sempre da mesma forma. Vou me ater apenas às diferenças! Expressões Condicionais são de três tipos: if-elseif-else, operador ternário “?” e switch. Observação: a condição deve vir sempre entre parêntesis no if-elseif-else. ❖ If, elseif e else Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 27 156 ❖ Operador Ternário ? ❖ Switch Já as Expressões Iterativas são de quatro tipos: while, do-while, for e foreach. A única observação é que o foreach é um laço usado para arranjos. ❖ Operador For Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 28 156 ❖ Operador While ❖ Operador Do-While ❖ Operador Foreach Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 29 156 Por fim, cabe salientar que PHP permite saltos de linha por meio do comando goto. Logo, pode-se saltar para qualquer linha de código por meio desse comando. ❖ Operador Goto E os arrays? Eles sempre vêm junto do símbolo “$” e pode ser de dois tipos: numérico, em que os índices/chaves são números inteiros e associativo, em que os índices/chaves são do tipo texto. Apresentam enorme versatilidade de declaração e construção! Em que sentido, professor? O exemplo abaixo mostra três maneiras distintas de se declarar um mesmo vetor. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 30 156 No último exemplo, o operador “=>” associa um índice a um valor. Agora observem esse exemplo! Um mesmo vetor pode ter índices numéricos e textuais. Além disso, seus valores podem ser de qualquer tipo (Ex: String, Integer, Boolean, etc). Por fim, temos os arrays multidimensionais, que podem ter índices/chaves numéricos ou textuais e valores de qualquer tipo. Ademais, também se pode utilizar o operador “=>”. Agora algumas curiosidades: arrays podem ser comparados assim como variáveis, por meio dos operadores (==, !=, ===, !==). Um array será igual a outro se ambos Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 31 156 tiverem os mesmos valores para os mesmos índices. Um array será triplamente igual a outro, se ambos tiverem os mesmos valores para os mesmos índices em uma mesma ordem. Arrays multidimensionais podem ser incompletos, i.e., um Array 2x2 pode ter apenas três elementos (teoricamente, ele teria quatro). Além disso, caso o programador adicione um valor em um array sem mencionar em qual índice/chave, ele será adicionado após o último índice. Mudando novamente de assunto! Vamos falar agora sobre Funções. Galera, esse assunto é uma pedra no sapato. Por que, professor? Cara, existem mais de 5000 funções! E nada impede que a banca escolha qualquer uma delas e cobre sua funcionalidade. Portanto, veremos as mais comuns e vocês vão rezar para que somente elas caiam em prova! Antes de tudo, o próprio programador por criar facilmente uma função de maneira bastante simples: Bem, uma função pode funcionar como um procedimento caso não retorne nenhum valor. Além disso, ela pode passar parâmetros por valor (sem “&”) ou por referência (com “&”). Enfim, vamos ver agora as 20 funções mais cobradas em questões de prova de concurso sobre PHP: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 32 156 Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 33 156 Bacana, mas vamos começar a falar um pouco sobre web? Tem um bocado de função importante nesse contexto também! Por exemplo, uma das principais características do PHP é que ele sabe lidar muito bem com formulários. É legal, porque qualquer elemento desses formulários fica disponível automaticamente para serem usados nos Scripts PHP. Imaginem um formulário HTML (sem tags PHP) que utilize o método POST e envie dados (Nome e Idade) para uma página action.php, como mostra o exemplo abaixo: Quando o usuário enviar os dados, automaticamente criar-se-á duas variáveis: $_POST[“nome”] e $_POST[“idade”]. Essas variáveis conterão os dados recebidos no método POST. O mesmo ocorre caso se utilize o método GET, porém com as variáveis: $_GET[“nome”] e $_GET[“idade”]. Agora imaginem uma página PHP que recebe esses dados e os armazena nessas variáveis, executando alguma ação: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 34 156 Agora vejam que interessante: essas variáveis são arrays associativos, i.e., com índice/chave textual. E que texto é esse? O nome das variáveis! Portanto, $_POST e $_GET são vetores com dois índices que armazenam valores inseridos e enviados pelo usuário em um formulário HTTP. E cookies, professor? PHP suporta cookies? Claro que sim! Eles são criados por meio da função setcookie(nome, valor, validade, caminho, domínio). Ela define um cookie para ser enviado juntamente com o resto dos cabeçalhos HTTP. Os cookies devem ser enviados antes de qualquer saída de script, aliás antes de todo e qualquer texto! Todos os argumentos, exceto o nome, são opcionais. Bem, eu falei sobre Formulários e Cookies. Por que isso? Porque há uma variável global $_REQUEST que consiste em uma array associativo que, por padrão, contém informações de $_GET, $_POST e $_COOKIE. Trata-se de uma variável automática, i.e., ela está disponível em todos os escopos e armazena os valores do Get, Post e Cookie. Beleza? E os frameworks, professor? Galera, os mais comuns são: CodeIgniter, Zend e Symfony. O CodeIgniter é um framework de desenvolvimento de aplicações PHP gratuito, leve, rápido, que utiliza MVC, gera URLs limpas e requer uma engine específica para templates. Trata-se de um conjunto de ferramentas para desenvolver aplicações muito mais rápido do que poderíamos fazer sem utilizar o framework. Já o Zend Framework é orientado a objetos, de código aberto, implementado em PHP 5 e foi desenvolvido para simplificar o desenvolvimento web enquanto promove as melhores práticas na comunidade de desenvolvedores PHP. E o Symphony também é um framework web livre, escrito em PHP e que segue o Padrão Movel-View-Controller. Ele é projetadopara permitir que os desenvolvedores apliquem princípios ágeis do desenvolvimento (tais como DRY, KISS ou XP) e foquem nas regras de negócio sem necessitar escrever muitos arquivos de configuração XML, comuns nos frameworks atuais. Além disso, permite construir aplicações robustas em contexto empresarial, e dar aos desenvolvedores controle total sobre a configuração. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 35 156 Por fim, vamos falar rapidamente sobre um assunto que nunca caiu em prova, mas que - se um dia cair - vocês já saberão do que se trata: Framework Laravel. O que é isso, professor? Cara, é um Framework PHP, livre, open-source, que utiliza o Padrão MVC para criar aplicações seguras e performáticas de forma rápido, com código limpo e simples. Capiche? Ele utiliza uma engine de template chamada Blade para criação da interface gráfica e possui uma pancada de ferramentas que auxiliam a criar aquelas interfaces bonitonas (e também funcionais) que nós vemos por aí na web, porém de forma bastante rápida. Outra característica bacana é que o código é bonito, organizado e limpo. Sério, o código-fonte é uma obra de arte! Ele possui uma sintaxe bastante expressiva, bonita, elegante, simples e fácil de ler. Bem, pessoal! Como eu disse, essa parada nunca caiu em prova até hoje, mas já veio em alguns editais. Logo, em breve, pode estar caindo com alguma frequência nas provas de desenvolvimento de sistemas. Guardem essas características básicas do framework e parte para o abraço na hora da prova. Exercícios... Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 36 156 2.2 EXERCÍCIOS COMENTADOS 1. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere a linguagem de programação PHP e seus operadores. A execução da sentença: a) (A != B) retorna falso (false), considerando as variáveis A e B inicializadas com os valores 3 e 6, respectivamente. b) (A %= B) atribui o valor 3 (três) para a variável A, considerando as variáveis A e B inicializadas com os valores 10 e 3, respectivamente. c) (A . = B) concatena o conteúdo das variáveis A e B e armazena o conteúdo em A. d)!(A == B) retorna falso (false), considerando as variáveis A e B inicializadas com os valores 3 e 6, respectivamente. e) (A = = = B) compara somente os tipos das variáveis A e B. Comentários: (a) Não, essa operação verifica se o valor de A é diferente do valor de B. O valor 3 é diferente de 6, portanto retorna True e, não, False; (b) Não, essa operação verifica qual o resto da divisão de A por B. 10/3 tem quociente 3 e resto 1, portanto retorna 1 e, não, uma atribuição; (c) Sim!De fato, essa operação concatena o conteúdo de A e B e armazena o resultado em A. (d) Não, essa operação verifica se o valor de A é diferente do valor de B e nega o resultado. O valor 3 é diferente de 6 resultando em falso, que, negado, será verdadeiro. (e) Não, essa operação compara o tipo e o valor das variáveis A e B. Portanto, ela retornaria True, caso fossem do mesmo tipo e com o mesmo valor. Gabarito: C 2. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere o programa abaixo escrito na linguagem PHP: $v = array(10, 50, 2, 15, 35); for($i=0;$i<count($v)-1;$i++){ if($v[$i] > $v[$i+1]){ $temp = $v[$i+1]; Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 37 156 $v[$i+1] = $v[$i]; $v[$i] = $temp; $i=-1; } } for($i=0;$i<=count($v);$i++){ echo " ".$v[$i]; } O resultado a ser informado ao usuário após a execução do programa acima é: a) 100 70 30 20 4 b) 50 35 15 10 2 c) 4 20 30 70 100 d) 2 10 15 35 50 e) 10 50 2 15 35 Comentários: Pessoal, esse é um simples algoritmo de ordenação. Observem que há a declaração de uma array $v com cinco valores desordenados. Dentro de um loop de repetição que vai de 0 (índice do primeiro elemento do vetor) até 4 (índice do último elemento do vetor), é verificado se o elemento anterior é maior que o posterior e, caso seja, armazena-se o valor da variável posterior em uma variável temporária $temp, copia-se o valor da variável anterior na variável posterior, depois copia-se o valor da variável temporária na variável anterior e rearranja o array. É um simples Bubble Sort, cujo resultado é 2 10 15 35 50. Por fim, há um loop que escreve o resultado na tela. Gabarito: D 3. (FCC - 2012 - MPE-AP - Técnico Ministerial - Informática) Analise os exemplos de criação de array em PHP. I. $idade = array("Paulo"=>32, "Pedro"=>30, "Ana"=>34); II. $familia = array("Jorge"=>array("Angela","Iracema", "Bia"),"Pedro"=>array("Ana")); III. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 38 156 $nome[0] ="Paulo"; $nome[1] ="Pedro"; $nome[2] ="Ana"; IV. $idade['Paulo'] = "32"; $idade['Pedro'] = "30"; $idade['Ana'] = "34"; Representam exemplos corretos de criação de array os itens a) I, II, III e IV. b) III e IV, apenas. c) I e II, apenas. d) I, III e IV, apenas. e) II, III e IV, apenas. Comentários: Primeiro, lembremos que – em PHP – o índice do array pode ser tanto um valor numérico quando um texto. Portanto, pode haver um array $vetor[0] = “João” ou $vetor[“João”] = 0. Vetor I: Correto, trata-se de um array associativo em que $idade[“Paulo”] = 32, $idade[“Pedro”] = 30 e $idade[“Ana”] = 34. Percebam que os índices/chaves desse vetor são “Paulo”, “Pedro” e “Ana” que estão associados por meio do operador => aos valores numéricos 32, 30 e 34. Vetor II: Correto, trata-se de um array multidimensional em que o primeiro elemento “Jorge” é um vetor com os valores “Angela”, “Iracema” e “Bia” e o segundo elemento “Pedro” também é um vetor com o valor “Ana”. Vetor III: Correto, trata-se de um array numérico em que o primeiro elemento é “Paulo”, o segundo é “Pedro” e o terceiro é “Ana”. Vetor IV: Correto, trata-se de um vetor associativo em que o primeiro elemento é “32”, o segundo é “30” e o terceiro é “34”. Gabarito: A Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 39 156 4. (FCC - 2012 - MPE-PE - Analista Ministerial – Informática) Marcos está desenvolvendo uma aplicação web PHP utilizando o WAMPServer. Como está utilizando um banco de dados MySQL, escolheu uma função para enviar uma consulta ou comando SQL (por exemplo, os comandos select, insert ou delete) para o banco de dados ativo. A função correta escolhida foi: a) mysql_fetch_array. b) mysql_query. c) mysql_update. d) mysql_execute_stmt. e) mysql_stmt_start. Comentários: Pessoal, é impossível saber todas as funções do PHP, ainda mais com as extensões (cerca de 5000)! Então essa era uma questão em que se necessitava de um conhecimento mais aprofundado, mas nada extremamente complicado.Bastava ver que a única opção mais condizente com um banco de dados era aquela que tinha o nome “query”. Essa função envia uma consulta/comando MySQL. Gabarito: B 5. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) Na linguagem PHP é possível utilizar o protocolo SOAP por meio de classes desenvolvidas especificamente para esse protocolo. A classe que fornece acesso cliente aos servidores SOAP é chamada de: a) PHPAccess. b) WSDLClient. c) SoapConnect. d) SoapClient. e) SoapAccess. Comentários: Mais uma questão que exige saber funções específicas. Caso vocês não saibam, eu recomendo que tentem ir sempre no mais lógico. A questão pede a classe que fornece acesso cliente aos servidores SOAP, portanto – na minha opinião – o item mais condizente é o SoapClient. Essa função fornece acesso cliente a servidores SOAP 1.1 e 1.2, podendo ser usada em Modo WSDL e Não-WSDL. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 40 156 Gabarito: D 6. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) A linguagem PHP permite a instalação de extensões que podem aumentar sua gama de funcionalidades. Uma das funcionalidades extras que podem ser adicionadas se refere a manipulação de arquivos XML. A extensão que possui várias classes que podem ser instanciadas para a leitura e gravação de arquivos XML é chamada: a) DOM. b) XML-RPC. c) Ctype. d) SCA. e) YAZ. Comentários: Mais uma questão que exige saber funções específicas, porém essa era mais complicada. O bom senso diria para ir na Letra B, no entanto a extensão que possui diversas classes para leitura e gravação de arquivos XML. Ela permite manipular documentos XML por meio da API DOM. Gabarito: A 7. (FCC - 2011 - TRE-AP - Técnico Judiciário - Programação de Sistemas) Em relação a PHP e JSP é correto afirmar: a) Em JSP o conceito de classes e objetos não leva em conta os princípios de proteção de dados tanto nas propriedades quanto nos métodos. b) A flexibilidade do PHP permite-lhe que a avaliação de uma variável seja o nome de outra variável ou mesmo de uma função. c) Em PHP os objetos possuem métodos e propriedades privados e devem ser instanciados para serem usados. d) Em JSP pode-se chamar o construtor do objeto pai em qualquer parte do código e não há tratamento de exceções nos métodos nativos. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 41 156 e) Em JSP os objetos são destruídos ao final da execução do script. Comentários: Vamos nos ater aos itens sobre PHP! (b) Sim, PHP é bastante flexível nesse sentido, i.e., uma variável pode receber o nome de outra variável ou o nome de uma função – são as chamadas variáveis variáveis; (c) Sim! No entanto, o gabarito diz que é errado! Eu não encontrei nenhum erro nessa questão. Observem que não foi dito que os objetos sempre possuem métodos e propriedades privados. De fato, o mais comum é ter métodos públicos e propriedades privadas – mas isso não é obrigatório. Gabarito: B 8. (FCC - 2011 - TRT - 14ª Região (RO e AC) - Analista Judiciário - Tecnologia da Informação) Na PHP 5, é uma função usada para a busca por um padrão em um nome de arquivo: a) fscanf. b) fpassthru. c) fseek. d) fputs. e) fnmatch. Comentários: Mais uma questão que exige saber funções específicas. O bom senso diria para ir na Letra E, na medida em que ela traz a palavra “match”. Apenas por curiosidade: fscanf() lê dados de um arquivo; fpassthru() lê dados de um arquivo até o fim do arquivo e escreve o resultado no buffer de saída; fseek() posiciona o ponteiro em um arquivo; fputs() escreve em um arquivo; e fnmatch() compara o nome em um arquivo com um padrão. Gabarito: E 9. (FCC - 2010 - MPE-RN - Analista de Tecnologia da Informação - Engenharia de Software) Na linguagem PHP 5, a função fputs: a) busca por um padrão em um nome de arquivo. b) é um nome alternativo para a função fwrite. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 42 156 c) interpreta o conteúdo de um arquivo de acordo com um determinado formato. d) cria um link físico. e) posiciona o ponteiro em um arquivo. Comentários: Mais uma questão que exige saber funções específicas. a – Errado. Quem faz isso é a função fnmatch(); b – Correto. É um nome alternativo para a função fwrite(); c – Errado. Quem faz isso é a função fscanf(); d – Errado. Quem faz isso é a função link(); e – Errado. Quem faz isso é a função fseek(). Gabarito: B 10. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) NÃO se trata de uma característica do PHP: a) portábil. b) baseado no servidor. c) gratuito e com código aberto. d) embutido no HTML. e) baseado no cliente. Comentários: Bem, em primeiro lugar, uma observação: “Portábil”, FCC? Pelo amor de Deus! Segundo, vamos à avalição dos itens. (a) Sim, ele é independente de plataformas. Similar ao Java, é WORA (Write Once, Run Anywhere); (b) Sim, é uma linguagem Server-side, i.e., o cliente envia a requisição, que é processada no servidor e retorna a resposta; (c) Sim, é uma linguagem Free e Open-source; (d) Sim, o PHP vai inserido em tags HTML; (e) Não, é uma linguagem Server-side e, não, Client-side. Gabarito: E Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 43 156 11. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) Para o recebimento dos dados de um formulário HTML, enviados por meio do método GET, para uma página PHP, deve-se utilizar: a) $_GET[“nome_text”] b) $GET[“nome_text”] c) _GET$[“nome_text”] d) _$GET[“nome_text”] e) _$_GET[“nome_text”] Comentários: Para recebimento de dados em formulário HTML, utilizando GET, deve-se utilizar $_GET[“nome_text”]. Por exemplo: caso o usuário entre em: http://example.com/?name=Sou+TRE, o resultado da execução de echo $_GET[“name”], será “Sou TRE”. Gabarito: A 12. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) A validação de uma data em PHP pode ser realizada pela função: a) getdate. b) checkdate. c) setdate. d) isdate. e) mktime. Comentários: getdate() recupera uma data; checkdate() verifica/valida uma data; setdate() modifica o valor de uma data; isdate() não faz parte das funções do PHP; mktime() obtém um timestamp Unix para uma data. A função checkdate valida uma data do calendário Gregoriano. Sua assinatura é a seguinte: checkdate(month,day,year); Gabarito: B 13. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) Em uma função, escrita na linguagem de programação PHP, a Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br44 156 passagem de parâmetros por referência é feita por meio da utilização do caractere: a) ! b) % c) & d) @ e) ? Comentários: Lembram-se de que a sintaxe da Linguagem PHP é fortemente influenciada pela sintaxe de C/C++ e Perl. Em C, a passagem de parâmetros por referência é feita por meio da utilização do caractere “&”. Nas funções PHP, a passagem por valor é o padrão. Caso você necessite passar um parâmetro por referência, utilize o caractere &. Veja no exemplo abaixo. <?php function foo(&$var) { $var++; } $a=5; foo($a); // $a vale 6 aqui. ?> Gabarito: C 14. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) Um servidor Web que interpreta páginas em PHP é denominado: a) IIS. b) JSTL. c) NetBeans. d) Apache. e) Netscape. Comentários: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 45 156 Bem, essa é uma questão extremamente mal formulada. Primeiro, JSTL é uma biblioteca de tags JSP, NetBeans é uma IDE de desenvolvimento de software e Netscape é um navegador web. Sobram, portanto, IIS e Apache. No entanto, ambos são Servidores Web capazes de interpretar páginas em PHP! No entanto, o gabarito oficial é Letra D. Gabarito: D 15. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte de Web) O envio de e-mails, por meio de programas PHP, é responsabilidade da função: a) email. b) mail. c) &mail. d) ismail. e) &email. Comentários: Questão decoreba que não avalia conhecimento! A função responsável pelo envio de e-mails é a função mail(). Repare que o examinador tenta confundir colocando simbolos, em PHP os nomes de variáveis é que são precedidas por símbolos ($), os nomes funções não (os parâmetros podem ser precedidos por & para indicar passagem por referência). Agora colocar e-mail como alternativa foi maldade rs. Veja um exemplo abaixo retirado da documentação. mail('caffeinated@example.com', 'My Subject', $message); Gabarito: B 16. (FCC - 2009 - TRT - 3ª Região (MG) - Técnico Judiciário - Tecnologia da Informação) Em PHP, a) os operadores aritméticos restringem-se a soma, subtração, multiplicação e divisão. b) as variáveis necessitam da sua definição de tipo no início do programa. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 46 156 c) operações aritméticas entre variáveis numéricas e variáveis alfanuméricas, por exemplo 6 divido por 3, resultam em mensagem de erro. d) o único conjunto de comandos condicionais utilizado é o if...endif. e) as variáveis são definidas com o símbolo "$" antes do nome da variável. Comentários: (a) Não, basta lembrar dos operadores Negação e Módulo; (b) Não, PHP é linguagem de tipagem dinâmica e fraca, i.e., permite declaração de variáveis em tempo de execução e permitem que as variáveis mudem de tipo; (c) Não, PHP realiza uma conversão implícita de tipos, portanto essa operação resultará no número 2 (6÷3); (d) Não, If... elseif... else e Switch; (e) Sim, para definir uma variável, utiliza-se o símbolo “$” antes de seu nome. Por exemplo: $variavel = 10. Gabarito: E 17. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Em PHP, uma variável NÃO pode receber o nome inválido: a) $cod_empregado b) $base1salario c) $data-nascimento d) $depto_1_nome e) $descricao Comentários: Em PHP, uma variável possui um nome válido caso se inicie com uma letra ou underscore, seguido de qualquer número de letras, algarismos ou underscores. Portanto, todas estão corretas, exceto $data-nascimento, na medida em que possui um traço (que é diferente de underscore). Gabarito: C 18. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) NÃO é uma afirmativa correta sobre a função PHP: a) session_start( ) = Inicializa os dados da sessão. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 47 156 b) session_destroy( ) = Cancela o registro de uma variável global da sessão. c) session_unset( ) = Libera todas as variáveis da sessão. d) session_commit( ) = O mesmo que session_write_ close( ). e) session_write_close( ) = Escreve os dados da sessão e a encerra. Comentários: A função session_destroy() destrói todos os dados registrados em uma sessão! Gabarito: B 19. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Utilizando a data 01/07/2009 e o comando PHP: echo $data = date("d/m/y"); a data será exibida no formato a) 01/07/09. b) 01/07/2009. c) 01/Jul/09. d) 01/Jul/2009. e) Wed, 01/Jul/2009. Comentários: Sinceramente, galera. É um absurdo cobrarem uma questão como essa... isso não avalia conhecimento de ninguém! Enfim, “d” é o dia de 01 a 31; “m” é o mês de 01 a 12; e “y” é o ano em dois dígitos. Gabarito: A 20. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A função fopen ( ), utilizada em um script PHP, que recebe o argumento de modo igual a "a+", abre um arquivo existente para: a) leitura e gravação e coloca o ponteiro no final do arquivo, depois de todos os dados. b) leitura e gravação, deleta todo o conteúdo e coloca o ponteiro no início do arquivo. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 48 156 c) leitura e gravação e coloca o ponteiro no início do arquivo, antes de qualquer dado. d) somente gravação e coloca o ponteiro no final do arquivo, depois de todos os dados. e) somente gravação, deleta todo o conteúdo e coloca o ponteiro no início do arquivo. Comentários: O argumento “a+” abre o arquivo para leitura e escrita; coloca o ponteiro no final do arquivo e, se o arquivo não existir, tenta criá-lo. Gabarito: A 21. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Um conteúdo será considerado como um código PHP pelo interpretador se estiver dentro do par de tags: a) <php> </php> b) <?php ?> c) <?php php?> d) <?> </?> e) <script language = PHP> ?> Comentários: Essa é fácil: começa com “<?php” e termina com “?>”. Gabarito: B 22. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A expressão PHP $x && $y representa um exemplo de utilização de operador: a) de atribuição. b) aritmético. c) lógico. d) de comparação. e) de incremento e decremento. Comentários: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 49 156 Operador “&&” é um operador lógico. O resultado é verdadeiro se ambas as variáveis forem verdadeiras, caso contrário será falso. Gabarito: C 23. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Dado o loop PHP: for ($x = 0; $x <= "5"; $x++) A variável $x assumirá os valores: a) 1, 3 e 5. b) 0, 1, 2,3 e 4. c) 1, 2, 3, 4 e 5. d) 0, 2 e 4. e) 0, 1, 2, 3, 4 e 5. Comentários: Questão bastante simples: é um laço de repetição em que os valores variam de 0 a 5. Portanto, a variável $x assume os valores 0, 1, 2, 3, 4 e 5. Gabarito: E 24. (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) HTML, DHTML, JavaScript e PHP são linguagens utilizadas no desenvolvimento de sites da World Wide Web. A seu respeito é correto afirmar que: a) o código de uma aplicação JavaScript deve ser interpretado pelo servidor HTTP ao passo que o código de uma aplicação PHP deve ser interpretado pelo cliente HTTP. b) o código de uma aplicação JavaScript deve ser interpretado pelo cliente HTTP ao passo que o código de uma aplicação PHP deve ser interpretado pelo servidor HTTP. c) tanto o código de uma aplicação JavaScript como o código de uma aplicação PHP devem ser executados pelo cliente HTTP. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 50 156 d) tanto o código de uma aplicação JavaScript como o código de uma aplicação PHP devem ser executados pelo servidor HTTP. e) o código de uma página HTML deve ser interpretado pelo cliente HTTP ao passo que o código de uma página DHTML deve ser interpretado pelo servidor HTTP. Comentários: Pessoal, como já foi dito, JavaScript é client-side e PHP é server-side. Gabarito: B 25. (FCC - 2015 - TRE-RR - ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS) Considere o seguinte script encontrado em uma página PHP. <?php $idade = array("Paulo"=>"40", "Pedro"=>"62", "Ana"=>"43", "Marcos"=>"18"); arsort($idade); foreach($idade as $x => $x_valor) { echo $x . " = " . $x_valor . " "; } ?> Ao executar o script será exibido na página: a) Ana = 43 Marcos = 18 Paulo = 40 Pedro = 62 b) Marcos = 18 Paulo = 40 Ana = 43 Pedro = 62 c) 0 = 62 1 = 43 2 = 40 3 = 18 d) Pedro = 62 Paulo = 40 Marcos = 18 Ana = 43 e) Pedro = 62 Ana = 43 Paulo = 40 Marcos = 18 Comentários: Questão sobre arrays e o método arsort. Como esse é um array com índices associativos, vimos na aula que o asort que ordena o array em ordem crescente dos valores, mantendo o índice. Já o arsort, o r é de reverse, ordena os valores na ordem inversa, ou seja, decrescente. Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 51 156 Gabarito: E 26. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO) Considere o código PHP a seguir: O comando que deve ser utilizado na lacuna I para colocar os nomes em ordem alfabética crescente é: a) order($nomes) ascending; b) rsort($nomes); c) index($nomes) order by asc; d) sort($nomes); e) krsort($nomes); Comentários: Esse é um array do tipo indexado, com índices numéricos. Portanto o método é o sort simples. Gabarito: D 27. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO) Considere um formulário criado na página de site desenvolvido com PHP para permitir que os usuários façam upload de arquivos: Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 52 156 No arquivo upload.php, as instruções utilizadas para se obter o nome e o tipo do arquivo, caso não ocorra erro são, respectivamente, a) $_DUMP["file"] e $_DUMP ["type"] b) $_FILES["file"]["name"] e $_FILES["file"]["type"] c) $_POST["file"] e $_ POST["type"] d) $_FILES["file"] e $_FILES ["type"] e) $_REQUEST["file"]["name"] e $_REQUEST["file"]["type"] Comentários: A variável superglobal que guarda os arquivos é o $_FILES. Perceba que o nome do input do arquivo é file. Ele que será o índice passado para o $_FILES. Agora o nome do arquivo e seu tipo estão dentro do objeto file. Por isso é preciso acessar com dois índices. $_FILES["file"]["name"] e $_FILES["file"]["type"]. Gabarito: B 28. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE WEB) Para acessar bases de dados MySQL, por meio do PHP, é necessário antes estabelecer uma conexão. Para isso, deve ser utilizado o comando: a) mysql_&connect ou mysql_&pconnect b) mysql_&&connect ou mysql_&&pconnect c) mysql&_connect ou mysql&_pconnect d) mysql&&_connect ou mysql&&_pconnect e) mysql_connect ou mysql_pconnect Comentários: O comando de acesso a uma base de dados MySQL é mysql_connect ou mysql_pconnect. A diferença entre os dois é que no segundo, a conexão é persistente. Essas funções estão depreciadas nas versões mais recentes, o uso agora Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 53 156 é unificado na função mysqli_connect() e para que a conexão seja persistente utiliza- se o parâmetro p: como prefixo do host. Gabarito: E 29. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE WEB) Uma função PHP em execução terminará imediatamente, retornando seu argumento como valor, se for chamada, na função, a instrução: a) this b) null c) return d) this.value e) this.return Comentários: O comando return encerra a execução de uma função retornando o argumento como valor. Gabarito: C 30. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE WEB) NÃO se trata de uma característica do PHP: a) portábil. b) baseado no servidor. c) gratuito e com código aberto. d) embutido no HTML. e) baseado no cliente. Comentários: Conforme visto na arquitetura do PHP, é necessário que os scripts sejam interpretados pelo servidor para que o código HTML que será apresentado ao cliente seja gerado. Gabarito: E Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 54 156 31. (FCC - 2009 - TRT-3ª REGIÃO (MG) - ANALISTA JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO) Dados os operadores “e” lógico: “and”, “&&” e “&” e os operadores “ou” lógico: “or”, “||” e “|”, a ordem de precedência no momento do PHP avaliar as expressões será na sequência: a) and, &&, &, or, || e |. b) or, II, I, and, && e &. c) and, or, &&, ||, & e |. d) or, and, ||, &&, | e &. e) &, &&, and, |, || e or. Comentários: Essa questão foi anulada, mas podemos aproveitá-la para avaliar como se dá a ordem de precedência em PHP! PRECEDÊNCIA DOS OPERADORES clone new [ ** ++ -- ~ (int) (float) (string) (array) (object) (bool) @ instanceof ! * / % + - . << >> < <= > >= == != === !== <> <=> & ^ | && || ?? ? : = += -= *= **= /= .= %= &= |= ^= <<= >>= and xor or Diego Carvalho, Pedro Henrique Chagas Freitas Aula 06 Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 55 156 Ou seja, a única opção onde alguma ordem é respeitada é a letra D, que está na
Compartilhar