Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Glif

prova PHP

Recommended Posts

Olá amigos, sou iniciante na área de PHP, fiz uma prova na faculdade sobre a linguagem mas não fui nada bem :/ . Gostaria de uma ajuda de vocês para ver o porque errei essas perguntas para poder estudar melhor. Tenho as respostas corretas em anexo mas gostaria de uma justificativa de cada resposta mostrando o porque está certo para eu poder dar uma boa estudada. Desde já agradeço. Muito obrigado.

 

2_3.jpg4_5.jpg6_7_8.jpg9_10.jpg11.jpg12.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá:

2. d

I: php também possui foreach
II: possui switch sim
III: falsa. possui muitas (2134 segundo o código abaixo)

var_dump(count(get_defined_functions()['internal']));
int(2134)

IV: falsa. Posso declarar $variavel (sem _ no começo)
V: possui sim. Posso fazer $v = (int) $v, para forçar $v a ser inteira


3. b

Todo checkbox deve ter "name" e deveria ter "value". Na minha opinião, todas as alternativas estão erradas, mas a B é a menos errada
O "name" deve ter "[]" para que seja possível selecionar múltiplas opções em vez de apenas uma. Assim $_POST['genero'] será um array


4. d

Iteração 1:
    $x = $y = 4
    4 % 3 != 0 (não entra no if)

Iteração 2:
    $x = 5
    $y = 4
    5 % 3 != 0 (não entra no if)

Iteração 3:
    $x = 6
    $y = 4
    6 % 3 == 0 (entra no if)
        imprime 6
        $y-- ($y passa a ser 3)

Iteração 4:
    $x = 7
    $y = 3
    7 % 3 != 0 (não entra no if)

Iteração 5:
    $x = 8
    $y = 3
    8 % 3 != 0 (não entra no if)

Iteração 6
    $x = 9
    $y = 3
    9 % 3 == 0 (entra no if)
        imprime 9
        $y-- ($y passa a ser 2)

Iteração 7
    $x = 10
    $y = 2
    10 % 3 != 0 (não entra no if)

Iteração 8
    $x = 11
    $y = 2
    11 % 3 != 0 (não entra no if)

Iteração 9:
    $x = 12
    $y = 2
    12 % 3 == 0 (entra no if)
        imprime 12
        $y-- ($y passa a ser 1)

Iteração 10:
    $x = 13
    $y = 1
    não entra no if

Iteração 11:
    $x = 14
    $y = 1
    não entra no if

Iteração 12:
    $x = 15
    $y = 1
    15 % 3 == 0 (entra no if)
        imprime 15
        $y-- ($y passa a ser 0)

Iteração 13:
    $y == 0, logo não entra no bloco do for

Resultado: 6, 9, 12, 15




5. b

$a + $b = 3.1
(int) 3.1 = 3

(int) $a = 1
1 + 1.6 = 2.6

Cuidado com os parênteses
No primeiro caso, o (int) se aplica ao resultado de $a+$b
No segundo, o (int) se aplica apenas a $a


6. B e D estão corretas. Tanto GET quanto POST enviam dados. A questão deveria ser anulada
Outro erro (de HTML, mas é um erro) é que a tag <form> tem tag de fechamento </form>, logo <form/> pode ser considerado um erro sintático


7. e
Simples. Usa-se sempre o "name" em $_GET ou $_POST


8. a


importante lembrar que a estrutura foreach associa com "indice do elemento" => "valor do elemento"

Logo:

Iteração 1:
    $a = 0
    $b = 1
    entra no if
        imprime "0 1"

e por aí vai


Um jeito mais fácil é escrever o array completo, com índices e valors:

Indíce => Valor
0 => 1 (linha é exibida)
1 => 2 (linha é exibida)
2 => 2 (linha não é exibida)
3 => 8 (linha é exibida)
4 => 4 (linha não é exibida)
5 => 4 (linha é exibida)
6 => 6 (linha não é exibida)




9. e

$matriz é um array bidimensional, que pode ser escrito como:

$matric = array(
    0 => array(
        1,
        2,
        3
    ),
    1 => array(
        4,
        5,
        6
    ),
    2 => array(
        7,
        8,
        9
    )
)

E o foreach não é recursivo. Ou seja, ele percorre só o primeiro nível do array $matriz
Dessa forma, $linha será sempre um array (começando por [1,2,3], depois [4,5,6] e finalizando por [7,8,9])

E um echo de um array sempre gera erro, como neste exemplo:

echo array('um', 'dois');
PHP Notice: Array to string conversion in php shell code on line 1



10. e

Ao acessar, ele vê "1". Ao recarregar, entra no if e soma o contador para 2. Por fim, "2" é exibido.

Ou seja, o C vê dois números, um em seguida do outro. A questão pode ser interpretada de duas formas:

1. O primeiro número exibido a ele
2. O segundo número exibido a ele

Logo, considero um questão mal formulada e, consequentemente, deveria ser anulada.



12. b

I: verdadeira. Deveria usar mysqli_connect_error()
II: falsa. é possível usá-la no if, sim
III: falsa. não retornará erro, pois $senha está entre aspas simples e o cifrão é considerado literal. Logo, estamos falando da string "$senha", não da variável $senha dentro de um string
IV: falsa. Está correta a passagem por string
V: verdadeira. por ter usado fetch_row, o array só contém índices numéricos. Para ter índices em string, deveria-se usar fetch_assoc. Outra alternativa é usar fetch_array, que retorna ambas as formas




Vários pontos da prova eu abordo no meu Guia 15 Boas Práticas para PHP.
Para aprender isso tudo mais a fundo, confira o meu Curso ULTIMATE PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

O melhor lugar para estudar sobre qualquer linguaguem, é na sua documentação.

No caso do php, http://php.net/manual/pt_BR/ o manual em português é bem traduzido e a tradução cobre praticamente todo o manual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.