Ir para conteúdo
Fórum Script Brasil
  • 0

Variaveis que Possam Ser Acessadas Por qualquer Funcao No Include


kuroi

Pergunta

é o seguinte, tenho um arquivo que vou usar como include. nele existem varias variaveis, mas também varias funcoes. o que acontece é que quero que as variaveis sejam acessadas por todas as funcoes. mas elas não reconhecem as variaveis. exemplo:

<?php //meu arquivo comeca aqui;
     $x = 1;
     $y = "abc";

     function funcao()
     {
          echo $x; // quando chega aqui, $x e $y estao vazios!!
          echo $y;
     }
//meu arquivo acaba aqui ?>[/code] quando chega na funcao, as variaveis estao vazias. mas quando eu vou pegar o valor delas na outra pagina (onde esse arquivo é um include), os valores de $x e $y aparecem normais. tentei por as variavies num segundo include, e fazer assim:
[code]<?php
     require("variaveis.php");

     function funcao()
     {
          echo $x; // quando chega aqui, $x e $y estao vazios!!
          echo $y;
     }
?>

mas também não funcionou.

sera que isso é o jeito de declarar?? alias... como se declara variavel em php?? tem como por elas como publicas por exemplo?? alias, também tentei declarar como global, não deu erro, mas também não funcionou. alguém sabe se tem como??

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

O que acontece é que, ao declarar as variáveis (declarar é um modo de dizer, né?) você as define apenas no escopo do programa principal.. Na linguagem C, isso é mais visualizável que no PHP, mas enfim.. Estas variáveis não possuem valores dentro de funções, porque é como se o programa principal fosse uma outra função, onde as variáveis foram declaradas.. Tá dando pra entender?? EHaeueahuae

É mais ou menos isso que acontece na hora de rodar:

<?php
    $b = "bola";
    echo $b;
    function Teste() {
        $b = "carro";
        echo $b;
    }
    Teste();
    echo $b;
?>
A saída será algo como:
bola
carro
bola
Quando você entra na função, as variáveis de lá, mesmo tendo o mesmo nome, são diferentes das do programa principal, entendeu?? O que fazer para funcionar o que você quer? Há duas maneiras de se fazer isto: a primeira é passar os valores por parâmetro da função. Assim, seu programa fica:
<?php //meu arquivo comeca aqui;
     $x = 1;
     $y = "abc";

     function funcao($valor_x, $valor_y)
     {
          echo $valor_x; // quando chega aqui, $x e $y estao vazios!!
          echo $valor_y;
     }
    
    funcao($x, $y); //Aqui você chama a função para ela executar
//meu arquivo acaba aqui 
?>
O outro método, é declarando as variáveis como globais, no escopo da função: Assim, seu programa fica:
<?php //meu arquivo comeca aqui;
     $x = 1;
     $y = "abc";

     function funcao()
     {
          global $x, $y;
          echo $x; // quando chega aqui, $x e $y estao vazios!!
          echo $y;
     }
    
    funcao(); //Aqui você chama a função para ela executar
//meu arquivo acaba aqui 
?>

É claro que para resolver mais rapidamente, a segunda opção pode lhe servir muito mais.. Mas dê uma olhada na primeira opção e veja quais vantagens e desvantagens você pode ter com cada forma..

Espero que tenha compreendido..

Link para o comentário
Compartilhar em outros sites

  • 0

hum, valeu pela explicacao, deu pra entender direitinho.

usei o segundo metodo e deu certo.

e quando eu disse declarar, quis dizer declarar mesmo hehe

pelo parece que não se declara mesmo em php. é que tipo, nunca tive aula ou li manuais de php, comecei a mexer cuma linguagem a uns dois dias, mas so olhando pelos codigos dos outros. ai achei que eles não declaravam mesmo por preguica, mas achei que tivesse algum jeito, tipo:

string $var; ou local $var; ou public $var ou ainda dim $var; hehe

pelo jeito isso não existe mesmo, certo??

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, não que eu conheça.. Mas também posso estar errado. O único momento em que se declara variáveis em PHP, é em uma classe, e mesmo assim, não se declara de que tipo é a variável, apenas se ela é pública ou protegida..

Outros mais experientes podem dizer melhor a respeito..

Que bom que foi válida a ajuda, e que entendeu corretamente..

Link para o comentário
Compartilhar em outros sites

  • 0

Só queria dar um pitaco... porque acho que ficou um comentário errado no código postado por ikkinet, quando ele usa a palavra chave "global":

<?php //meu arquivo comeca aqui;
     $x = 1;
     $y = "abc";

     function funcao()
     {
          global $x, $y;
          echo $x; // quando chega aqui, $x e $y estao vazios!!
          echo $y;
     }
    
    funcao(); //Aqui você chama a função para ela executar
//meu arquivo acaba aqui
?>

Quando diz "quando chega aqui, $x e $y estao vazios", na verdade os valores que foram atribuídos a estas variáveis no escopo global estarão em uso no escopo da função, de acordo com a própria explicação que está no post. Só o comentário que merece correção, tipo '// quando chega aqui, $x == 1 e $y == "abc"'. Correto?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...