Glif 0 Denunciar post Postado Setembro 27, 2015 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Setembro 27, 2015 Vamos lá:2. dI: php também possui foreachII: possui switch simIII: 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 inteira3. bTodo checkbox deve ter "name" e deveria ter "value". Na minha opinião, todas as alternativas estão erradas, mas a B é a menos erradaO "name" deve ter "[]" para que seja possível selecionar múltiplas opções em vez de apenas uma. Assim $_POST['genero'] será um array4. 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, 155. b$a + $b = 3.1(int) 3.1 = 3(int) $a = 11 + 1.6 = 2.6Cuidado com os parêntesesNo primeiro caso, o (int) se aplica ao resultado de $a+$bNo segundo, o (int) se aplica apenas a $a6. B e D estão corretas. Tanto GET quanto POST enviam dados. A questão deveria ser anuladaOutro erro (de HTML, mas é um erro) é que a tag <form> tem tag de fechamento </form>, logo <form/> pode ser considerado um erro sintático7. eSimples. Usa-se sempre o "name" em $_GET ou $_POST8. aimportante 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 => Valor0 => 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 $matrizDessa 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 110. eAo 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 ele2. O segundo número exibido a eleLogo, considero um questão mal formulada e, consequentemente, deveria ser anulada.12. bI: verdadeira. Deveria usar mysqli_connect_error()II: falsa. é possível usá-la no if, simIII: 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 stringIV: falsa. Está correta a passagem por stringV: 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 formasVá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
Vinicius Ianni 189 Denunciar post Postado Setembro 28, 2015 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