Buscar

Aula 07 (4)

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 85 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 85 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 9, do total de 85 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

Prévia do material em texto

Livro Eletrônico
Aula 07
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB
(Analista TI) - Pós-Edital
Judah Reis
 
 
 
 
 
 1 
84 
Sumário 
1 PHP .................................................................................................................................................. 2 
1.1 INTRODUÇÃO .......................................................................................................................... 2 
1.2 EXERCÍCIOS COMENTADOS ................................................................................................... 20 
2 LISTA DE EXERCÍCIOS ..................................................................................................................... 64 
2.1 LISTA DE EXERCÍCIOS: ............................................................................................................ 64 
3 GABARITOS .................................................................................................................................... 84 
3.1 GABARITO: PHP ..................................................................................................................... 84 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 2 
84 
 
1 PHP 
1.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. 
Grupo de Discussões 
 
https://groups.google.com/forum/#!msg/comp.infosystems.www.authoring.cgi/PyJ25gZ6z7A/M9FkTUVDfcwJ 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 3 
84 
 
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 
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 alto ní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 
 
1 Está instalado em mais de 244 milhões de websites e 2.1 milhões de web servers. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 4 
84 
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. 
 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah ReisAula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 5 
84 
 
 
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? 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 6 
84 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 7 
84 
 
 
 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 8 
84 
 
 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 9 
84 
 
 
❖ Operadores Associativos: 
 
 
 
❖ Operadores Comparativos: 
 
 
 
❖ Operadores Incrementais/Decrementais: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 10 
84 
 
 
 
❖ Operadores Lógicos: 
 
 
 
Bem, pessoal. É impossível esgotar todo assunto de PHP em uma aula online, 
ademais o intuito aqui não é ensinar ningué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 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 11 
84 
 
 
❖ 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 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 12 
84 
 
 
❖ Operador While 
 
 
 
❖ Operador Do-While 
 
 
 
❖ Operador Foreach 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 13 
84 
 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 14 
84 
 
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 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 15 
84 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 16 
84 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 17 
84 
 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 18 
84 
 
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 é projetado para 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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 19 
84 
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... 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 20 
84 
1.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]; 
 $v[$i+1] = $v[$i]; 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 21 
84 
 $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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 22 
84 
$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 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 23 
84 
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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 24 
84 
 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 25 
84 
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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 26 
84 
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 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 27 
84 
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 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 28 
84 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 29 
84 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 30 
84 
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_nomee) $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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 31 
84 
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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 32 
84 
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: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 33 
84 
 
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. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 34 
84 
 
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. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 35 
84 
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: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 36 
84 
 
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 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 37 
84 
é 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 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 38 
84 
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 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 39 
84 
Ou seja, a única opção onde alguma ordem é respeitada é a letra D, que está na 
ordem CRESCENTE de precedência. A questão acabou ficando mal feita, mas ao 
menos revisamos como se dá a ordem de avaliação de operadores em PHP! 
 
Gabarito: D 
 
32. (FCC - 2016 - TRF 3ª REGIÃO (SP MS) - TÉCNICO JUDICIÁRIO - INFORMÁTICA) 
Cookie é um arquivo texto que pode ser armazenado no computador do 
usuário, normalmente com informações de sua navegação no site, para ser 
recuperado posteriormente pelo servidor. Em PHP, um cookie criado pela 
instrução setcookie("ck", "abcde", time() + 3600); poderá ser recuperado 
utilizando a instrução: 
 
a) $_ISSET["ck"] 
b) load_cookie ("ck") 
c) get_cookie("ck") 
d) $_GETCOOKIE["ck"] 
e) $_COOKIE["ck"] 
 
Comentários: 
 
Como vimos na aula, a variável superglobal $_COOKIE[“ck”] recupera cookies 
armazenados no cliente. 
 
Gabarito: E 
 
33. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
<?php 
function f($arg) 
{ 
$arg01 = 343 + 20/2 + 911; 
$arg02 = 38 - (5 * 11); 
$argRetorno = $arg01 - $arg02; 
} 
 
$arg01 = 343; 
$arg02 = 38; 
f($arg01); 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 40 
84 
echo $arg01; 
?> 
 
A saída produzida pela execução desse código é: 
 
a) -17 
b) 38 
c) 343 
d) 1264 
e) 1281 
 
Comentários: 
 
Vimos na aula que a passagem padrão de argumentos no PHP é por valor, ou seja, 
o valor da variável passada não é alterado. Logo, o valor continua sendo 343. 
 
Gabarito: C 
 
34. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Uma String 
recebida do campo nome de um formulário HTML enviado por meio do método 
POST para um site deve ser codificada para UTF-8. A forma correta de realizar 
essa operação, utilizando a linguagem PHP, é: 
 
a) $nome = utf8_encode( $_POST['nome'] ) 
b) $nome: utf8 
c) decode($nome) 
d) $nome = string( $_POST['nome'] ) 
e) parseHTML($nome, utf8( $_POST['nome'] ) 
 
Comentários: 
 
Para resolver essa questão, precisamos saber qual é a forma de ler um campo do 
método POST. Já sabemos que a variável superglobal $_POST guarda os valores 
passados, para recuperar basta colocar o nome do campo, logo, recuperamos o 
campo nome dessa forma: $_POST['nome']. Isso jé eliminam as letras b e c. 
Infelizmente era necessário saber que a função é a utf8_encode. 
 
Gabarito: A 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 41 
84 
35. (IESES - 2015 - IFC-SC - INFORMÁTICA - WEB DESIGN) Em um código PHP 5.6.2, 
qual das alternativas a seguir atribuiria o valor 10 à variável $var? 
 
a) $var = (100 > 10 : 100 ? 10); 
b) $var = (100 > 10 ? 10 : 100); 
c) $var = (100 > 10 : 10 ? 100); 
d) $var = (100 > 10 ? 100 : 10); 
 
Comentários: 
 
O ‘?’ é o operador ternário do PHP. Sua sintaxe é (exp1 ? exp2 : exp3). Caso a exp1 
seja verdadeira o retorno é exp2, caso seja falsa, o retorno é exp3. 
 
Os itens A e C estão com sintaxe errada. Vamos analisar os restantes: 
B) 100 > 10 ? verdade; Logo retorna 10. Correto. 
D) 100 > 10 ? verdade; Logo retorna 100. Incorreto. 
 
Gabarito: B 
 
36. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
 
Ao final da execução desse código, os valores na variável $lista estarão: 
 
a) ordenados de forma crescente, segundo o método de ordenação Quicksort; 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 42 
84 
b) ordenados de forma crescente, segundo o método de ordenação em bolha; 
c) embaralhados, não sendopossível prever a ordem dos valores; 
d) removidos da variável, devido a um erro no código; 
e) duplicados, devido a um erro no código. 
 
Comentários: 
 
Primeiramente, a variável $lista recebe um array cujos valores são os números de 0 
à 20 (retorno da função range). Em seguida, executamos uma for com a variável $i 
também recebendo valores de 0 a 20. 
 
Ao entrar no for, a variável $pos sempre receberá um valor aleatório entre 0 e 20 
(função rand). A $aux receberá o valor da $lista[0], ou seja, 0. E $lista[0] = 
$lista[$pos], quer dizer que receberá um valor aleatório entre 0 e 20. E ao final 
$lista[$pos] = $aux, $aux == 0 nesse momento, ou seja, a posição aleatória receberá 
o valor na ordem do loop. 
 
Ufa, para mim isso virou uma bagunça total entre 0 e 20 rs, não podemos saber 
quais valores estão em cada posição. 
 
Gabarito: C 
 
37. (CESPE – 2017 – TRE/BA - Analista de Sistemas) A respeito da declaração de 
variáveis na linguagem de programação PHP, assinale a opção correta. 
 
a) Uma variável é composta pelo nome dessa variável seguido do sinal $ no final. 
 
b) Um nome de variável pode começar com um número. 
 
c) Os tipos de variáveis existentes são somente local e global. 
 
d) Diferentemente das linguagens em que o programador deve declarar o nome 
e o tipo da variável antes de usá-la, o PHP converte automaticamente a variável 
para o tipo de dado correto. 
 
e) Os nomes das variáveis no PHP não diferenciam maiúsculas de minúsculas, ou 
seja, eles são case insentivive. 
 
Comentários: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 43 
84 
(a) Errado, uma variável é composta pelo sinal $ no início e o nome da variável; (b) 
Errado, um nome de variável sempre começa com uma letra ou sublinhado, seguido 
por letras, números ou sublinhados – a expressão regular é [a-zA-Z_\x7f-\xff][a-zA-
Z0-9_\x7f-\xff]*; (c) Errado, seria melhor dizer que existem os escopos: Global, Local 
ou Estático; (d) Correto, PHP é fracamente tipada, ou seja, durante a execução do 
programa pode-se alterar o tipo de dados de uma variável; (e) Errado, PHP é case-
sensitive. 
 
Gabarito: D 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 44 
84 
 
 
Com o objetivo de iniciar o desenvolvimento de uma série de aplicações web em 
PHP para uma organização que possui ambientes de desenvolvimento e 
produção que trabalham com informações de elevado grau de sensibilidade, um 
programador realizou a instalação, em sua máquina, de um IDE (interactive 
development environment) PHP. 
 
38. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A habilitação da característica de thread safety no 
painel de informações do ambiente de runtime PHP depende fundamentalmente 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 45 
84 
do suporte que o sistema operacional oferta, e não, das características do zend 
engine. 
 
Comentários: 
 
Errada. Um servidor web deve lidar com diversas requisições de usuários, e para tal, 
pode criar um novo processo para cada nova requisição ou apenas um processo 
com diversas threads, uma para cada requisição. 
Historicamente, sistemas baseados em Unix utilizam processos para lidar com 
concorrência. Já quando se trata de Windows, a maioria dos Webservers irão tratar 
diferentes cliente sem diferentes threads. 
No PHP, para que não haja conflitos entre as threads, ou seja, para que ele seja 
thread safe, se faz necessário um sistema de proteção para que cada thread 
mantenha acesso apenas às suas variáveis. Esse sistema é chamado de Zend Thread 
Safety ou ZTS, que depende do Zend Engine. 
 
Gabarito: E 
 
39. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Considere que determinada aplicação web a ser 
desenvolvida em PHP deva ser integrada aos sistemas de controle de acesso já 
presentes nos ambientes de desenvolvimento e produção da organização. Nesse 
caso, se esses ambientes forem embasados em Kerberos ou em RADIUS (remote 
authentication dial in user service), o programador poderá obter êxito na 
integração por meio do uso de extensões providas pela biblioteca PECL (PHP 
extension community library), tais como os packages KADM5 e RADIUS. 
 
Comentários: 
 
Correta. RADIUS (Remote Authentication Dial In User Service) é um protocolo de 
rede que fornece gerenciamento centralizado de Autenticação, Autorização e 
Contabilização para usuários que conectam-se a e utilizam um serviço de rede. 
Kerberos é um protocolo de autenticação, que foi concebido para fornecer um 
robusta autenticação para aplicações cliente-servidor através de criptografia de 
chave secreta. 
Uma das formas de acessar servidores que utilizam o Kerberos é utilizando 
o KADM5 (Kerberos Administration 5). Tanto o KADM5 quanto o RADIUS podem 
ser instalados pelo repositório de extensões PECL. 
 
Gabarito: C 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 46 
84 
 
40. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O arquivo de configuração do PHP, de nome php.ini, 
será lido apenas no momento da inicialização (startup) do servidor HTTP 
associado ao referido IDE, que, no caso específico, é o Apache 2.2.11. 
 
Comentários: 
 
Correta. O arquivo de configuração, php.ini, é lido quando o PHP inicia. Para as 
versões de módulo de servidor, isso acontece apenas quando o servidor web for 
iniciado. Vale notar que para as versões CGI e CLI, isso acontece a cada invocação. 
 
O servidor HTTP é, realmente, o Apache 2.1.11, como podemos ver na imagem 
fornecida na questão no item Loaded Configuration File. 
 
Gabarito: C 
 
41. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para que possa depurar os scripts PHP que 
construirá, o programador não necessita instalar depuradores externos, uma vez 
que a distribuição padrão de PHP vem acompanhada de depurador. 
 
Comentários: 
 
Errada. Como a questão é de 2010, na época o PHP não vinha com depurador, 
necessitando desta forma de alguma depurador externo (XDebug, por exemplo) em 
conjunto com alguma IDE (Netbeans, Eclipse, PHPStorm, etc). Porém, a partir da 
versão 5.6 do PHP, ele vem com um depurador próprio, o phpdbg que é um 
depurador interativo. Então se a questão cair novamente a resposta muda, beleza?! 
Fiquem atentos! 
 
Gabarito: E 
 
 
42. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O acesso otimizado ao sistema gerenciador de 
banco de dados (SGBD) em uso nos ambientes de desenvolvimento e produção 
da organização pode ser obtido por meio da extensão PDO (PHP data objects), 
desde que seja habilitado o driver PDO específico do SGBD em uso, uma vez 
que a PDO não provê abstração completa do banco de dados, mas apenas uma 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 47 
84camada de abstração para acesso aos dados, que não reescreve SQL nem emula 
funcionalidades de um SGBD. 
 
Comentários: 
 
Correta. O PDO (PHP Data Object) realiza uma abstração do banco de dados 
fornecendo uma biblioteca limpa e consistente, que unifica as características das 
extensões que acessam os bancos de dados. Porém, o PDO possui também algumas 
desvantagens, por exemplo, não efetua a leitura e tradução das instruções SQL, é 
apenas realizada uma fusão dos métodos mandados para as extensões respectivas. 
Principais características do PDO: 
 
▪ Flexibilidade – Como o PDO carrega o driver específico do banco de dados em 
tempo de execução, não é preciso reconfigurar o PHP sempre que um banco de 
dados diferente for usado. 
▪ Desempenho – O PDO está escrito em C e compilado no PHP, o que lhe garante 
um aumento considerável no desempenho em relação a soluções escritas em 
PHP. 
▪ Consistência de código – No PDO não existe a inconsistência de código, pois é 
oferecida apenas uma interface unificada que é está disponível para qualquer 
banco de dados. 
▪ Características de orientação de objetos – Possui recursos de orientação de 
objetos, o que resulta em uma comunicação mais poderosa e eficiente com 
banco de dados. 
 
Gabarito: C 
 
43. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Caso o programador deseje criar, gerenciar e 
distribuir internamente à organização um ou mais packages que contenham 
módulos ou extensões por ele desenvolvidos, é correto o uso da técnica de 
channels, que é embasada em arquitetura orientada a serviços (SOA), por meio 
da utilização de XML e REST (representational state transfer). 
 
Comentários: 
 
Correta. A questão mistura muitos conceitos causando uma confusão e, 
aparentemente, parece estar errada por falar de um técnica do SOA (channels) e 
terminar falando de REST. Bem, um dos princípios do SOA é o reuso logo, se um 
programador desenvolveu um pacote de funcionalidade é interessante que este 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 48 
84 
fique disponível para toda a organização, assim, caso alguém sinta a necessidade 
de alguma funcionalidade já coberta por este pacote, basta consumi-lo. Uma das 
formas de consumo é através de channels implementados em REST que é um forma 
de consumo para webservices mais simples que o SOA. 
 
Gabarito: C 
 
44. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para instalar extensões do repositório PEAR (PHP 
extension and application repository), é correto o uso do Pyrus, uma versão 
refatorada do instalador PEAR, capaz de prover maior segurança aos processos, 
permitindo o gerenciamento e a distribuição de packages. 
 
Comentários: 
 
Correta. O PEAR (PHP Extension and Application Repository) é um repositório de 
diversas extensões do PHP, escritas em PHP. Um dos gerenciadores de pacotes PHP 
que suportava pacotes PEAR era o pyrus descontinuado em 2011 devido a 
popularidade de um outro gerenciador de pacotes, o Composer. 
Vale lembrar que utilizam-se gerenciadores de pacotes devido a facilidade com que 
eles integram as diversas dependências entre os pacotes, facilitando a vida do 
programador que não tem que ficar instalando as dependências dos pacotes uma 
a uma. 
 
Gabarito: C 
 
Suponha que uma equipe de programadores PHP tenha como atribuição o 
desenvolvimento de um módulo de software a partir da composição, da extensão 
ou da adaptação de um framework. Com base nessa situação e considerando as 
boas práticas do desenvolvimento e manutenção de sistemas, incluindo-se as 
recomendadas pelos desenvolvedores de extensões padronizadas para PHP, julgue 
os itens seguintes. 
 
45. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Ao se escreverem scripts PHP, deve-se empregar 
indentação com espaços em branco, sem uso de tabs; atribuições em arrays 
devem ser alinhadas; comentários podem adotar o estilo C ou estilo C++, mas 
comentários em estilo PERL devem ser evitados. 
 
Comentários: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 49 
84 
 
Correta. Segundo a PSR (PHP Standard Recommendations), mais especificamente a 
PSR 2, ou Guia de estilo de codificação (Coding Style Guide), que aborda como deve 
ser feita a formatação do código para facilitar a leitura por outros desenvolvedores, 
algumas das indicações são: 
 
• Devemos usar 4 espaços para indentação, não tabs. 
 
• Não devemos fixar um número de caracteres por linha, mas é bom que uma 
linha tenha menos de 80 caracteres. 
 
• A abertura de colchetes de classes e métodos devem vir na próxima linha. 
class Foo 
{ 
 public $aMemberVar = 'aMemberVar Member Variable'; 
 public $aFuncName = 'aMemberFunc'; 
 
 function aMemberFunc() { 
 print 'Inside `aMemberFunc()`'; 
 } 
} 
 
• A abertura de colchetes de estruturas de controle devem vir na mesma linha 
com um espaço em branco. 
 for ($i = 1; $i <= 10; $i++) { 
 echo $i; 
} 
 
• Comentários podem ser feitos com // (Tal como C e C++) , # ou /* … */ (Para 
blocos de comentário) 
 // comentario 
 # comentario 
 /* Comentario 
 Multi linhas 
 ... 
*/ 
 
• Arrays em PHP são atribuídos da seguinte forma: 
 <?php 
$cars = array("Volvo", "BMW", "Toyota"); 
?> 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 50 
84 
Sobre os comentários no estile PEARL, na documentação oficial do PHP não há 
menção alguma sobre evitar comentários com # (cerquilha, estilo PEARL), assim a 
questão está errada porém o CESPE considerou correta. 
 
Gabarito: C 
 
46. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Scripts de teste funcional devem conter a extensão 
.phpt, conforme prescreve o padrão de distribuição de módulos PHP; os diversos 
artefatos de teste relacionados a um módulo desenvolvido devem ser 
armazenados em subdiretório de nome tests, dentro do diretório do módulo ou 
package; dados de configuração específicos do ambiente de teste do 
desenvolvedor devem ser armazenados no arquivo de nome config.php.dist. 
 
Comentários: 
 
Errada. Na página oficial do PHP Assurance Quality Team, não há quaisquer das 
restrições impostas para realização de testes descritas no enunciado da questão. 
Um teste phpt é um pequeno script usado pelo php-src e equipes de Garantia de 
Qualidade (QA) para testar as funcionalidades do PHP, e ele pode ser usado com 
novos lançamentos para certificar-se de que eles continuem funcionando como nas 
versões anteriores, ou para ajudar a encontrar erros em versões atuais. 
 
Gabarito: E 
 
47. (CESPE – 2010 – ABIN – Oficial Técnico de Inteligência - Área de 
Desenvolvimento e Manutenção de Sistemas) Se o pedido 
http://localhost:8080/teste.php?nome=joao for aplicado de forma bem sucedida 
ao script apresentado a seguir, então, após o processamento do pedido, a saída 
de dados para o usuário deverá conter a string joao e um arquivo de nome 
joao.txt, contendo a palavra joao, existirá no computador onde se encontra o 
serviço HTTP associado ao referido pedido. 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w.w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 51 
84 
Comentários: 
 
Anulada. Pessoal a questão está ERRADA, mas o CESPE anulou. Vamos analisar. 
Trata-se de uma requisição do tipo GET. Vejamos a constituição da requisição: 
 
http://localhost:8080/ teste.php? ?nome=joao 
URL para onde é mandada a 
requisição 
seráqueScript
executado 
comnomeVariável
valor joao 
 
Vamos analisar linha a linha: 
 
$ponteiro = fopen ( $_REQUEST[‘nome’].’.txt’] ); 
 
Cria um arquivo com o nome passado na URL através da variável nome 
(http://localhost:8080/teste.php?nome=joao) e extensão “.txt”, porém, faltou 
especificar o modo é de escrita (poderíamos usar ‘r+’, ‘w’, ‘w+’, ‘a’, ‘a+’). 
 
modo Descrição 
'r' Abre somente para leitura; coloca o ponteiro do arquivo no começo 
do arquivo. 
'r+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo 
do arquivo. 
'w' Abre somente para escrita; coloca o ponteiro do arquivo no começo 
do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo 
não existir, tenta criá-lo. 
'w+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo 
do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo 
não existir, tenta criá-lo. 
'a' Abre somente para escrita; coloca o ponteiro do arquivo no final do 
arquivo. Se o arquivo não existir, tenta criá-lo. 
'a+' Abre para leitura e escrita; coloca o ponteiro do arquivo no final do 
arquivo. Se o arquivo não existir, tenta criá-lo. 
'x' Cria e abre o arquivo somente para escrita; coloca o ponteiro no 
começo do arquivo. Se o arquivo já existir, a chamada afopen() falhará, 
retornando FALSE e gerando um erro de nível E_WARNING. Se o 
arquivo não existir, tenta criá-lo. Isto é equivalente a especificar as flags 
O_EXCL|O_CREAT para a chamada de sistema open(2). 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 52 
84 
'x+' Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no 
começo do arquivo. Se o arquivo já existir, a chamada afopen() falhará, 
retornando FALSE e gerando um erro de nível E_WARNING. Se o 
arquivo não existir, tenta criá-lo. Isto é equivalente a especificar as flags 
O_EXCL|O_CREAT para a chamada de sistema open(2). 
 
fwrite($ponteiro,$nome); 
Escreve no arquivo criado o valor da variável $nome (no caso joao). 
 
fclose($ponteiro); 
Fecha o arquivo recem criado. 
 
echo $_GET[‘nome’]; 
Imprime para usuário o valor da variável nome passado na requisição do tipo GET. 
 
Vale notar que as variáveis $_GET, $_POST e $_REQUEST são ditas 'superglobais', 
ou globais automáticas. Isto significa que elas estão disponíveis em todos escopos 
pelo script. Não há necessidade de fazer global $variable; para acessá-las dentro de 
uma função ou método. Pessoal, embora o $_REQUEST trate tanto requisições POST 
quanto GET é aconselhável utilizar utilizar $_GET para requisições GET e $_POST 
para requisições POST não só por questões de performance, estilo e boa 
práticas. As variáveis $_REQUEST são providas para o script PHP via mecanismos 
de entradas GET, POST, e COOKIE e portanto poderiam ser modificadas por um 
usuário remoto e não podem ser confiadas. 
 
Gabarito: A 
 
48. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Sabendo-se que a função array_multisort é capaz 
de ordenar múltiplos arrays na plataforma PHP, então a saída de dados gerada 
pela execução bem sucedida do script abaixo produzirá o resultado indicado em 
seguida. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 53 
84 
 
Comentários: 
 
Correta. Pessoal, esta questão trata de como a função array_multisort funciona. Ela 
é usada para ordenar vários arrays de uma vez ou apenas um array multi-
dimensional de acordo com uma das dimensões. Os arrays dados são tratados 
como colunas de uma tabela a ser classificada pelas linhas - isso lembra a 
funcionalidade da cláusula ORDER BY da SQL. 
 
O primeiro array é o principal na ordenação. As linhas (valores) no primeiro array 
servem de base para a ordenação do próximo, e assim por diante. A estrutura de 
argumentos dessa função não é muito normal, mas bastante flexível. O primeiro 
argumento de todos deve ser um array. Subsequentemente, cada argumento pode 
ser um array ou um dos sinais de classificação da lista a seguir. 
 
Sinais de ordem de classificação: 
• SORT_ASC - classifica na ordem crescente 
• SORT_DESC - classifica na ordem decrescente 
 
Sinais de tipos de ordenação: 
• SORT_REGULAR - compara os elementos normalmente 
• SORT_NUMERIC - compara os elementos como itens numéricos 
• SORT_STRING - compara os elementos como strings 
 
Não podem existir dois sinais de ordenação do mesmo tipo especificados para um 
mesmo array. Os sinais de ordenação especificados depois de um array se aplicam 
apenas para esse array - a eles são atribuídos por padrão os valores SORT_ASC e 
SORT_REGULAR antes de cada novo argumento do tipo array. 
 
Realizando o algoritimo na primera array, a segunda “acompanha” com os índices 
correspondentes, como linhas de uma tabela (lembrando que o PHP utiliza o 
algoritmo Quicksort para ordenação de arrays). 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 54 
84 
 
 
Logo, a afirmação está correta! Para fins de ilustração, vejamos outros exemplos da 
função array_multisort 
 
Exemplo 1: 
 
<?php 
$ar1 = array("10", 100, 100, "a"); 
$ar2 = array(1, 3, "2", 1); 
array_multisort($ar1, $ar2); 
?> 
 
Saída: ”10”, ”a”, 100, 100 e 1, 1,”2”, ”3” 
 
Exemplo 2: 
 
<?php 
$ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 
array_multisort($ar[0], SORT_ASC, SORT_STRING, 
 $ar[1], SORT_NUMERIC, SORT_DESC); 
?> 
 
Saída: ”10”, 100, 100, ”a” e 1, ”3”, ”2”, 1 
 
Gabarito: C 
 
49. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A execução bem sucedida do script apresentado 
abaixo produz como saída o valor 900. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 07
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 55 
84 
 
Comentários: 
 
Errada. Pessoal, vamos resolver linha a linha: 
 
Linha 1: $num = 14 ; $deslocado = $num >> 2; 
O operador >> desloca $num de 2 bits para esquerda isso na prática corresponde 
a dividir por 4, vejamos: $num em binário é 1110, logo 1110 >> 2 fica 11, então 
$deslocado assume o valor 11 em binário, ou seja, 3. Assim terminamos a primeira 
linha com: 
 
$num = 14 e $deslocado = 3 
 
Linha 2: $soma=$deslocado;$valor1=10;$valor2=20;$valor3=30; 
Aqui não temos nada demais a não ser atribuição de valores a variáveis. Terminamos 
a linha com: 
 
$soma=3, $valor1=10, $valor2=20 e $valor3=30 
 
Linha 3: $soma+=$valor1+$valor2;$soma*=$valor3; 
Nada demais, vejamos: $soma+=$valor1+$valor2 equivale a $soma = $soma + 
$valor1 + $valor2 = 3 + 10 + 20 = 33; $soma*=$valor3 equivale a $soma = $soma 
* $valor3 = 33 * 30 = 990; Assim terminamos a linha 3 com: 
 
$soma = 990 
 
Linha 4: $soma%=100; 
Aqui estamos utilizando o operador resto da divisão inteira, logo: $soma%=100 
equivale a $soma = $soma % 100 = 990 % 100 = 90. Assim terminamos a linha

Continue navegando