Foros del Web » Programando para Internet » PHP »

Problema con condición en If

Estas en el tema de Problema con condición en If en el foro de PHP en Foros del Web. Como están? Dependuendo una serie de condiciones voy armando una string con la condición para un if en una variable Ejemplo Código PHP: $CarCondicion  =  ...
  #1 (permalink)  
Antiguo 06/05/2008, 10:04
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Problema con condición en If

Como están?


Dependuendo una serie de condiciones voy armando una string con la condición para un if en una variable

Ejemplo

Código PHP:
$CarCondicion "$NomPersona == 'Freddy' && $TipPersona == 2"
Ahora lo que quiero hacer es colocar eso en una condicion. algo asi como

Código PHP:
if ($CarCondicion
Pero no me funciona hay simplemente lo que mira es que $CarCondicion este vacia o no.

Como puedo hacer esto gracias?
  #2 (permalink)  
Antiguo 06/05/2008, 10:37
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Problema con condición en If

mira si este codigo que hice te ayuda en algo :)
Código PHP:
<?php
$a
=" \$b == 'algo' && \$c == 1";
$b="algo";
$c=1;
condiciones($a);
function 
condiciones($if) {
global 
$b,$c;
    
//Separamos la variable segun sus estados de "Y"
    
$arr=split("&&",$if);
    
    for(
$i=0;$i<count($arr);$i++) {
        
//Separamos las dos partes...
        //Si es igual
        
$arr2=split("==",$arr[$i]);
        if(
count($arr2)>1) {
        
//Sí es igual
        
        //Quitamos espacios en blanco del final, y del principio
        
$cond_a=trim($arr2[0]);
        
$cond_b=trim($arr2[1]);
        
//Quitamos $ de la variable 
        
$cond_a=substr($cond_a,1,strlen($cond_a)-1);
        
        
//Buscamos las ' ' en caso de que sea una cadena, y se las quitamos :)
        
$cond_b=str_replace("'","",$cond_b);
        
//Hacemos la comprobacion
        
if($$cond_a == $cond_b) echo "a";
        else echo 
"b";
        
        }
    
    }


}

?>

La funcion está sin acabar, le faltaria actuar con != y con || :)

Espero que te sirva, la idea, es indicarte como avanzar, no hacerlo :D
  #3 (permalink)  
Antiguo 06/05/2008, 10:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema con condición en If

lo ke pasa es ke intentas comparar una string en realidad...
debes evaluar esta cadena, antes de continuar...

mira:

eval("?><?php print ($expresion)?TRUE:NULL; ?>");

PDTA: si intentas seguir agregando variables a tu cadena, es preferible ke las agregues con comillas sencillas... ya que dentro de las dobles las $variables son evaluadas...
  #4 (permalink)  
Antiguo 06/05/2008, 10:46
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Problema con condición en If

Gracias a los dos por contestar.

eleazan seguro que no hay una forma mas sencilla de hacer esto?

pateketrueke suena interesante lo que me respondio pero no le entendi muy bien como es que debo hacer me puede orientar con el ejemplo que di

de nuevo gracias a ambos
  #5 (permalink)  
Antiguo 06/05/2008, 10:51
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Problema con condición en If

jeje, la forma de paketetrueke es bastante mejor...... puesto que es nativa del lenguaje o.o

la mia es una como la suya, pero empezada a hacer por mi en un rato de aburrimiento en el curro >.<

para usar eval
Código PHP:
$a=" \$b == 'algo' && \$c == 1";
$b="algo";
$c=1;

if(eval("?><?php return ($a)?TRUE:FALSE?>")) echo "Cosas si es verdadero";
else echo "Cosas si es falso";
Más info: http://es.php.net/manual/es/function.eval.php

Espero que te quedase claro :)
  #6 (permalink)  
Antiguo 06/05/2008, 10:58
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
Re: Problema con condición en If

Podrias hacer algo asi

<?
$NomPersona = "Freddys";
$TipPersona = 2;

$CarCondicion = "$NomPersona == 'Freddy' && $TipPersona == 2";

if ($CarCondicion)
{
echo "Los datos son iguales";
}else{
echo "Los datos no son iguales";
}

?>
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/
  #7 (permalink)  
Antiguo 06/05/2008, 11:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema con condición en If

Eleazan (y) ¡¡¡gracias!!!

((es ke a veces no tengo paz'ciencia para describir))
  #8 (permalink)  
Antiguo 06/05/2008, 11:21
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Problema con condición en If

Definitivamente el eval era la mejor alternativa


Gracias a todos por responder y solucionarme el problemilla.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:26.