O RH da empresa solicitou a elaboração de um teste de avaliação de conhecimentos, sendo que o candidato possa demonstrar sua experiência na linguagem PHP.
Após algumas pesquisas e levantamento das necessidades que o candidato enfrentará no dia a dia, foi elaborado esse pequeno exemplo onde a utilização de arrays e classes são sem dúvida atividades corriqueiras nos mais diversos projetos.
Palpite da Megasena
1 - Criar uma função que retorne um array com 6 dezenas aleatórias entre 1 e 60, atentando que os números nunca se repitam e que estejam na ordem crescente.
Clique aqui para solução
<?php
function aposta() {
$sena = array();
$i = 0;
while( $i <= 5 ) {
$numero = rand( 1,60 );
if( ! in_array( $numero,$sena ) ) {
$sena[] = $numero;
++$i;
}
}
sort( $sena );
return $sena;
}
?>
2 - Utilizando a função acima e pensando num volante da Megasena, criar um layout html contendo 3 tabelas com 10 colunas
e 6 linhas numeradas com as 60 dezenas e destacando com a cor azul(#0000FF) os números sorteados.
Para isso, deverão constar 3 apostas não repetidas. Há várias formas de resolver, porém, essa atividade não será
avaliada pelo layout e sim pela lógica e organização do código.
Clique aqui para solução
<html>
<body>
<?php
$jogo = array();
$x = 1;
while( $x <= 3 ) {
$nros = aposta();
$r = 0;
foreach( $jogo as $j ) {
$r = 0;
foreach( $nros as $n ) {
if( in_array( $n,$j ) ) {
++$r;
}
}
if( $r == 6 ) {
break;
}
}
$jogo[] = $nros;
++$x;
}
foreach( $jogo as $j ) {
echo "<table>";
echo "<tr>";
$l = 1;
for( $i = 1; $i <= 60; ++$i ) {
if( in_array( $i,$j ) ) {
echo "<td bgcolor=#0000FF>";
} else {
echo "<td>";
}
echo $i;
echo "</td>";
++$l;
if( $l > 10 ) {
$l = 1;
echo "</tr>";
echo "<tr>";
}
}
echo "</table>";
echo "
";
}
?>
</body>
</html>
3 - Criar uma simples classe que possa ler o conteúdo de um arquivo texto. Essa classe deverá conter um atributo privado que será usado para guardar o conteúdo do arquivo lido, um método para carregar o arquivo e outro para visualizar o atributo.
Clique aqui para solução
<?php
class arquivo {
private $conteudo;
function getConteudo() {
return htmlentities( $this->conteudo );
}
function lerArquivo( $arquivo ) {
$this->conteudo = file_get_contents( $arquivo );
}
}
?>
4 - Utilizando a classe criada acima, criar um form que solicite ao usuário um arquivo e que ao submeter seja visualizado o conteúdo.
Clique aqui para solução
<?php
if( isset( $_FILES[ "arquivo" ]["tmp_name"] ) ) {
$arquivo = $_FILES[ "arquivo" ]["tmp_name"];
$arq = new arquivo();
$arq->lerArquivo( $arquivo );
echo $arq->getConteudo();
}
?>
Esses são alguns exemplos simples que podem ser encontrados num teste de avaliação de conhecimentos.
A dica ao elaborar a avaliação conforme auxilio dos psicólogos é que seja organizada da questão mais simples à mais complexa, pois o candidato já estará numa posição de pressão, então as questões mais simples lhe darão confiança para resolver as demais. A intenção além de saber o grau de conhecimento em PHP é também a lógica e organização do código.
Várias são as formas de resolver as questões acima, o ideal é tentar ser o mais objetivo e simples, atentando ao contexto. Uma possível próxima questão para esse teste é tentar refatorar o código. Não custa tentar.