Ir para conteúdo

POWERED BY:

Arquivado

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

Ghean

[Resolvido] Eval para retornar função

Recommended Posts

Tenho uma consulta onde preciso che

 

$strRequeridos   = '{1004} AND ({1003} OR {1042} OR {1037} OR {1038} OR {1032} OR {1033} OR {1035} OR {1036})';
$arrSelecionados = array( '1037', '1042', '1111' );

$ini = str_replace('{', 'in_array(', $strRequeridos);
$ini = str_replace('}', ', $arrSelecionados)', $ini);

#retorno in_array(1004, $arrSelecionados) AND (in_array(1003, $arrSelecionados) OR in_array(1042, $arrSelecionados) OR in_array(1037, $arrSelecionados) OR in_array(1038, $arrSelecionados) OR in_array(1032, $arrSelecionados) OR in_array(1033, $arrSelecionados) OR in_array(1035, $arrSelecionados) OR in_array(1036, $arrSelecionados)) 

 

Tentei usar o eval() e jogar isso dentro em if, mas não estou conseguido:

 

 if( eval($ini) )

 

Como chamar essa string no if?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Ghean não entendi lhufas cara.

Você precisa do in_array pois esta fazendo uma consulta no SQL Server não é isso?

dai você faz um replace pra deixar a consulta ok.

 

Até aqui tudo bem. Agora ... pra que d...bos você precisa do eval?? :huh:

 

Explica melhor oque tu quer fazer para podermos lhe ajudar.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso checar se o trecho tratado retornou true ou false

 

Se eu jogar direto a string no if, não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer checar se o str_replace funcionou é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, consegui assim:

 

$strRequeridos   = '{1004} AND ({1003} OR {1042} OR {1037} OR {1038} OR {1032} OR {1033} OR 

{1035} OR {1036})';
$arrSelecionados = array( '1037', '1042', '1111' );

$ini = str_replace('{', 'in_array(', $strRequeridos);
$ini = str_replace('}', ', $arrSelecionados)', $ini);

eval("if(" . $ini . ") { echo 'true'; }else{ echo 'false'; }");

 

 

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado crucifier e Kratos Zohr, era isso mesmo que precisava e os dois exemplos funcionaram.

Também havia conseguido da seguinte forma:

 

if( eval("return (".$ini.");") )
{
   echo 'true';
}
else 
{
   echo 'false';
}

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.