Ir para conteúdo

POWERED BY:

Arquivado

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

Kakashi_Hatake

[Resolvido] if else inline php

Recommended Posts

Estou começando a mudar alguns if e else nos meus códigos e preciso saber se é possível colocar mais de uma variável após a comparação

tipo assim:

<?php
$nome = 'test1';
($nome=='test1')? $r = 'resultado1' $re = 'resultado2' : $r = 'resultado3' $re = 'resultado4';
echo $r."<br />".$re;
?>

Já tentei de algumas formas, mas sem resultado. o único jeito que consegui foi:

<?php
$nome = 'test1';
($nome=='test1')? $r = 'resultado1' : $r = 'resultado3';
echo $r."<br />";
?>

<?php
$nome = 'test1';
echo ($nome=='test1')? 'resultado1' : 'resultado3';
?>

<?php
$nome = 'test1';
$r = ($nome=='test1')? 'resultado1' : 'resultado3';
echo $r."<br />";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

$nome = 'test1';
list( $r , $re ) = $nome=='test1' ? array( 'resultado1' , 'resultado2' ) : array( 'resultado3' , 'resultado4' );
echo $r."<br />".$re;

 

PS: Apenas tome cuidado com a legibilidade. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era isso mesmo.

Aproveitando, tem como colocar um WHILE. tipo uma consulta ao banco de dados ? sabe onde tem um tutorial sobre esse assunto? valeu !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como colocar um WHILE.

 

Esse eu não entendi...

 

Colocar um while onde ?

 

Operadores de comparação http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://php.net/manual/en/language.operators.comparison.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo esse exemplo:

if($linhas == 0){
require("conexao.php");
$sql = "INSERT INTO ip (id, ip, firstVisit, lastVisit) VALUES (NULL, '$ip', CURDATE(), CURDATE())"; 
$query = mysql_query($sql,$conn);
}else{
$sql = "SELECT * FROM ip WHERE ip = '$ip'";
$query = mysql_query($sql,$conn);
  while ($resultado = mysql_fetch_array($query)) {
   $ipDb = $resultado["ip"];
   $dataDb = $resultado["lastVisit"];
}
}

Só que inline

Compartilhar este post


Link para o post
Compartilhar em outros sites

No 5.3 você pode fazer isso:

 

$nome = 'test1';

list( $r , $re ) = $nome == 'test1' ? call_user_func( function(){
$a = array();
$b = array();

for ( $i = 0 ; $i <= 10 ; ++$i ){
	if ( $i % 2 ) $a[] = $i;
	else $b[] = $i;
}

return array( $a , $b );
} ) : array( 1 , 2 );

var_dump( $r , $re );

 

A saída será:

array(5) {
 [0]=>
 int(1)
 [1]=>
 int(3)
 [2]=>
 int(5)
 [3]=>
 int(7)
 [4]=>
 int(9)
}
array(6) {
 [0]=>
 int(0)
 [1]=>
 int(2)
 [2]=>
 int(4)
 [3]=>
 int(6)
 [4]=>
 int(8)
 [5]=>
 int(10)
}

Antes do 5.3 você precisará da função create_function para conseguir o mesmo efeito, mas novamente, cuidado com a legibilidade o código acima nem parece com PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, valeu mesmo, era isso que eu tava procurando mas não tava achando em lugar algum, você me deu uma luz para o que eu tava querendo fazer.

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.