[AsteriskBrasil] Duvida no AGI
Jonas Roberto de Goes Filho (sysdebug)
jonas em onda.com.br
Segunda Janeiro 29 11:51:38 BRST 2007
Olá,
André Gonçalves wrote:
> não sou muito bom php não, mas se não estou enganado o erro esta naquelas
> aspas duplas onde vc ta fazendo a atribuição ou nas aspas dos ifs.
> tenta fazer a atribuição as aspas ou com aspas simples.
Na verdade não é isso.
>
> []'s
> André
>
>
> ----- Original Message -----
> From: "Fabiano Heringer (BiGuRoOt)" <bigu em grupoheringer.com.br>
> To: <asteriskbrasil em listas.asteriskbrasil.org>
> Sent: Thursday, January 25, 2007 11:12 AM
> Subject: [AsteriskBrasil] Duvida no AGI
>
>
> Oi galera, minha duvida é mais na linguagem PHP do que do proprio agi,
> quem puder me dar um help
> tenho o seguinte codigo:
>
> $teste = "5";
Até este ponto a variável $teste é construída no programa como um tipo
de dado string e recebe a seguinte string "5".
Confira isso com a função gettype [1].
[1] http://br.php.net/manual/pt_BR/function.gettype.php
>
> if ($teste = "1") {
> WRITE("EXEC DIAL SIP/TELLFREE/" . $agi[extension] . "||tTM(grava)");
> }
Neste ponto do programa, a condição if sempre será verdadeira, pois, a
variável $teste recebe agora o valor "1" e este valor é considerado
verdadeiro no PHP. Portando, o que estiver dentro de if, sempre será
executado.
>
> elseif ($teste = "2") {
> WRITE("EXEC DIAL SIP/DIRECTCALL/55" . substr($agi[extension],1)
> . "||tTM(grava)");
> }
Este trecho jamais será executado pois está aninhado com a condição
acima if ($teste = "1"), que sempre será verdadeira. Portando, o
programa pula esta parte.
>
> else {
> WRITE("EXEC PLAYBACK acesso_negado");
> break;
> }
Este trecho jamais será executado pois está aninhado com a condição
acima if ($teste = "1"), que sempre será verdadeira. Portando, o
programa pula esta parte.
>
> qualquer valor q eu colocar na variavel $teste , ele SEMPRE executa o
> primeiro IF...é como se estivesse ignorando o teste
Exatamente.
>
> Alguem tem ideia o que to fazendo errado ai?
Eu acredito que a solução para o seu caso sejá utilizar um dos
operadores de comparação do PHP, o == ou o ===. Estes operadores
trabalham de forma diferentes, mas tem como objetivo fazer comparações
de valores. São operadores condicionais. O operador = é um operador de
atribuição. Confira [2].
[2] http://br.php.net/manual/pt_BR/language.operators.php
>
> Obrigado
> ----------------------------------------
valew!
--
Jonas Roberto de Goes Filho (sysdebug)
Mais detalhes sobre a lista de discussão AsteriskBrasil