Skip to content

Instantly share code, notes, and snippets.

@fxcosta
Last active November 2, 2015 04:17
Show Gist options
  • Save fxcosta/fe576e2c28c2a143826e to your computer and use it in GitHub Desktop.
Save fxcosta/fe576e2c28c2a143826e to your computer and use it in GitHub Desktop.
<?php
/**
* Script PHP simples que ilustra e resolve o problema de troca de lâmpadas proposto por @fxcosta para ser solucionado
* em conjunto com Mateus e Luis, como forma de fortalecer nossos conhecimentos em lógica
**/
// Esse será o start do script, ou seja, a função principal
apertarBotao();
function apertarBotao()
{
$resultado = ligarLampada();
if($resultado === true) {
echo 'Pode ir embora, já deu tudo de boa';
} else {
trocarLampada();
echo 'A lampada foi trocada';
}
}
function ligarLampada()
{
$rand = rand(0, 1);
if($rand === 1) {
echo 'Ok, estamos ligando a lampada!';
return true;
}
echo 'Não está ok. A lampada não ligou...';
return false;
}
function trocarLampada()
{
subirBanquinho();
echo 'estou trocando a lampada!';
}
function subirBanquinho()
{
echo 'subindo';
}
<?php
/**
* Script em PHP simples que resolve e ilustra o segundo problema proposto por mim para ser resolvido em conjunto, igualmente o file acima,
* e o principal ganho foi ter aprendido a trabalhar com sessions de um modo cru usando arrays.
* O problema em si trata-se de descobrir se determinada pessoa, previamente enviada via formulário, está na lista de
* convidados ou não. Caso sim, é bem vinda e seu nome é removido, caso não, nada de especial acontece, apenas o barramento da mesma.
**/
session_start();
$convidados = array(
'Felix',
'Mateus',
'Luis'
);
// preciso definir isso para garantir qua e session criada não vai acabar sendo sobescrita a cada nova sessão iniciada pelo cliente
if(!isset($_SESSION['sessao'])) {
$_SESSION['sessao'] = $convidados;
}
if(isset($_POST['nome']) && !empty($_POST['nome'])) {
$convidado = $_POST['nome'];
$achei = array();
foreach($_SESSION['sessao'] as $key => $conv) {
if($conv === $convidado) {
$achei = array('indice' => $key, 'nome' => $conv); // queremos tanto o indice do array como o seu valor.
}
}
if(empty($achei)) {
echo "Não encontrei ninguém! <br>";
} else {
echo 'Achei, seja bem vindo: '. $achei['nome']. '<br>';
unset($_SESSION['sessao'][$achei['indice']]); // destruo esse elemento da sessão iniciada por nós de acordo com a key salvaa
}
// se a sessão estiver vazia, destroi ela, para que seja iniciada novamente na parte superior do script e tudo
// possa ser feito novamente, sem ser preciso limpar cache e etc.
if(empty($_SESSION['sessao'])) {
unset($_SESSION['sessao']);
}
}
?>
<form method="post" action="index.php">
Nome:<input type="text" name="nome">
<input type="submit" value="Enviar" name="enviar">
</form>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment