🤔 Para Refletir :
"Quer ouvir um paradoxo? Desenvolvedores que fazem jogos envolventes."
- InterPlay

Caverna do Conhecimento - Lógica de Programação - PHP (Aula 2)

Sir Lobø

Conde
Membro
Membro
Juntou-se
18 de Novembro de 2017
Postagens
330
Bravecoins
0
[imgleft]https://i.imgur.com/xziZf9y.png[/imgleft]
Lógica de Programação - PHP (Aula 2) por [member=1777]TheBodeKiller[/member] (Sir. Lobo)

Olá, meus caros! Hoje iremos aprender um pouco sobre formulários, comparações e obtenção de dados.

Comparações Aritméticas

Vamos iniciar pelas funções de comparação if, else e else if:

if funciona como um "se tal valor for igual, variável será de valor A", e else, funciona como "senão, será de valor B". Else if é a junção das duas anteriores e é usado em um "senão" específico.

Comparadores aritméticos:
$foo == $barfoo é igual a bar
$foo === $barfoo é idêntico a bar
$foo >= $barfoo é maior ou igual a bar
$foo <= $barfoo é menor ou igual a bar
$foo != $barfoo é diferente de bar
$foo !== $barfoo é não-idêntico a bar

Exemplo:
Código:
<?php
$valor = 1;

if($valor === 1){
$var = "Verdadeiro";
}
else{
$var = "Falso";
}
?>

Ou com else if:

Código:
<?php
$valor = 1;

if($valor === 1){
$var = "Verdadeiro";
}
else if($valor >= 2){
$var = "Falso";
}
?>

O código acima exemplifica que, caso o valor da variável $valor seja 1, o valor da variável $var será "Verdadeiro", se for maior ou igual a 2, será "Falso".

Obtendo Dados de Formulários e Hiperlinks

$_GET e $_POST são variáveis superglobais da linguagem PHP e são essencialmente usadas na obtenção de dados.

Mas qual a diferença entre as duas?

Basicamente, a superglobal $_POST captura dados provindos de elementos de formulários, enquanto $_GET pode obter valores provenientes tanto de hiperlinks quanto de elementos de formulário, ambos seguido de seus parâmetros e pesos.

Exemplo:
Código:
if(count($_GET) > 0){
	$valor = $_GET['nome'];
}else if(count($_POST) > 0){
	$valor = $_POST['nome'];
}

echo $valor;
?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="nome"/>
<input type=submit value="Enviar via POST"/>
</form>

<a href="index.php?nome=teste">Enviar via GET</a>

Presumindo que já tenha a máquina preparada com o servidor local PHP, salve o código acima em seu diretório www como "teste.php" e faça um teste, assim como os anteriores. Estude e entenda cada conjunto com paciência e perseverança.

Caso nao tenha configurado sua máquina ainda, leia a Aula 1 sobre PHP: http://www.condadobraveheart.com/forum/index.php?topic=3367.0

Até a próxima aula, pessoal!

Continue acompanhando a caverna com Sir. Lobo([member=1777]TheBodeKiller[/member]) e Master Bruce([member=426]Bruce Azkan[/member])​
 
Ficou muito bom, jovem. :D

Apenas uns pequenos tips and tricks:

No PHP, array vazia é considerada falsy, então podemos fazer a condicional diretamente:

Php:
if ($_GET) {
    $valor = $_GET['nome'];
} elseif ($_POST) {
    $valor = $_POST['nome'];
}

Note que também temos o elseif junto no PHP. Não muda nada escreve-lo assim ou separado, mas a recomendação da Zend é faze-lo junto.

Há ainda uma outra variável no PHP que é $_REQUEST, que agrupa o $_POST e $_GET numa só:

Php:
if ($_REQUEST) {
    $valor = $_REQUEST['nome'];
}

E o último é que sempre quando estivermos trabalhando com arrays, verificar se o índice existe antes de definir o valor para evitar erros de sintaxe:

Php:
$valor = isset($_REQUEST, $_REQUEST['nome']) ? $_REQUEST['nome'] : 'Sem nome';

Mas é pura perfumaria no código. :v
 
Kyo Panda comentou:
Ficou muito bom, jovem. :D

Apenas uns pequenos tips and tricks:

No PHP, array vazia é considerada falsy, então podemos fazer a condicional diretamente:

Php:
if ($_GET) {
    $valor = $_GET['nome'];
} elseif ($_POST) {
    $valor = $_POST['nome'];
}

Note que também temos o elseif junto no PHP. Não muda nada escreve-lo assim ou separado, mas a recomendação da Zend é faze-lo junto.

Há ainda uma outra variável no PHP que é $_REQUEST, que agrupa o $_POST e $_GET numa só:

Php:
if ($_REQUEST) {
    $valor = $_REQUEST['nome'];
}

E o último é que sempre quando estivermos trabalhando com arrays, verificar se o índice existe antes de definir o valor para evitar erros de sintaxe:

Php:
$valor = isset($_REQUEST, $_REQUEST['nome']) ? $_REQUEST['nome'] : 'Sem nome';

Mas é pura perfumaria no código. :v

Também creio que seja perfumaria hahahaha até porquê a falta de padrão do PHP irrita um pouco .-. E cá entre nós...não chega perto das gambiarras que podemos fazer :3

Mas é super válido, porque o leitor vai ter outra visão e saber que mesmo tendo um resultado, este pode provir de 2 métodos, e cada método tem ou não alguma negatividade.

Obrigado por colaborar!
 
@Lobo, parabéns pelo tutorial, ficou muito booom, espero ver mais desses por aqui.

Só para complementar algumas coisas, se me permite.

o IF usado com "===" abaixo que no caso você colocou como idêntico, é uma forma de comparar não só o valor, mas o tipo também.

Código:
<?php
  $foo === $bar foo é idêntico a bar
?>


A variável $foo será igual a $bar apenas se forem do mesmo valor e do mesmo tipo.

EX:

Será diferente se uma string for comparada com um inteiro:

Código:
<?php
  if ("1" === 1)
?>

Retorno: false



Código:
<?php
  if (1 === 1)
?>
Retorno: true


Código:
<?php
  if ("1" === "1")
?>
Retorno: true


___________________________________


*Perfumaria detected*

Caso a condição do IF execute apenas uma linha, podemos omitir as chaves.

Ex:

Todos os exemplos abaixo funcionam.

Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
?>


Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
else 
{
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
}
?>


Código:
<?php
if("1" === "1")
{
  $var = "Verdadeiro";
  $var = "Verdadeiro";
  $var = "Verdadeiro";
}
else 
{
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
}
?>


Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
else
  $var = "Verdadeiro";
?>
 
Resque comentou:
@Lobo, parabéns pelo tutorial, ficou muito booom, espero ver mais desses por aqui.

Só para complementar algumas coisas, se me permite.

o IF usado com "===" abaixo que no caso você colocou como idêntico, é uma forma de comparar não só o valor, mas o tipo também.

Código:
<?php
  $foo === $bar foo é idêntico a bar
?>


A variável $foo será igual a $bar apenas se forem do mesmo valor e do mesmo tipo.

EX:

Será diferente se uma string for comparada com um inteiro:

Código:
<?php
  if ("1" === 1)
?>

Retorno: false



Código:
<?php
  if (1 === 1)
?>
Retorno: true


Código:
<?php
  if ("1" === "1")
?>
Retorno: true


___________________________________


*Perfumaria detected*

Caso a condição do IF execute apenas uma linha, podemos omitir as chaves.

Ex:

Todos os exemplos abaixo funcionam.

Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
?>


Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
else 
{
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
}
?>


Código:
<?php
if("1" === "1")
{
  $var = "Verdadeiro";
  $var = "Verdadeiro";
  $var = "Verdadeiro";
}
else 
{
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
  $var = "Falso";
}
?>


Código:
<?php
if("1" === "1")
  $var = "Verdadeiro";
else
  $var = "Verdadeiro";
?>

Bem observado também, Resque. Obrigado pela contribuição.

E graças ao [member=1224]Kyo Panda[/member], aprendi um novo termo: "perfurmar o código" hahaha  :ksksks: :ksksks: :ksksks:

Um abraço!
 
Voltar
Topo Inferior