MROverclock Posted April 1, 2007 at 10:40 PM Report Share #91207 Posted April 1, 2007 at 10:40 PM boas, ando a fazer um pequeno projecto pessoal em php. estava tudo a decorrer mt bem (devagarinho e tal) até que de repente surgiu um problema: uma variável declarada e atribuído um valor numa função está disponível dentro da função que chamou a 1ª função? dou um exemplo feito a pressao para mostrar o que quero: function ola(){ $Tola = "ola!"; } function TextOla(){ ola(); echo $Tola . " Como estás?"; } TextoOla(); eu tenho a impressao que já tive isto a funcionar, mas de repente deixou de funcionar. se mandar imprimir as variáveis elas estão vazias. e não é o nome que está errado. isso foi logo a 1ª coisa que verifiquei. Um abraço e obrigado. Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 10:49 PM Report Share #91210 Posted April 1, 2007 at 10:49 PM Posso dar-te uma sugestão? Para o que queres fazer (ir buscar um valor a uma função, é preferível fazes isto: function ola(){ return "ola!"; } function textola(){ $tola = ola(); echo $tola." como estas?"; } textola(); Anyway, se tu queres é definir numa função uma variável que pode depois ser usada em qq sítio, fazes assim: function ola(){ global $tola; // aqui é que está o truque $tola = "ola!"; // como definiste na linha acima a variável $tola como global, ela vai ter esse valor em qq lado } function textola(){ global $tola; // mas este é o senão: sempre que quiseres usar uma variável global numa função, tens que escrever esta linha. echo $tola." como estas?"; } textola(); Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
MROverclock Posted April 1, 2007 at 10:57 PM Author Report Share #91215 Posted April 1, 2007 at 10:57 PM hum.. é isso mesmo que eu preciso. eu nao uso o return pk preciso "retornar" mais do que uma vriavel 😄 mais em promenor: o que estou a fazer é uma função que me vai iniciar o "sistema" todo. a várias variaveis vão ser atribuidos valores que veem em POST de outra página, etc.... e depois essas variaveis são usadas em várias funções. Vou aplicar essa cena do global e já ca meto um feedback Brigadão pela resposta rápida 🙂 Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 11:01 PM Report Share #91216 Posted April 1, 2007 at 11:01 PM hum.. é isso mesmo que eu preciso. eu nao uso o return pk preciso "retornar" mais do que uma vriavel 😄 Usas uma array por exemplo: function ola(){ return array($var1, $var2, $var3, $varn); } //e depois: $lol = ola(); echo $lol[0]; // $var1 lá em cima. Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
MROverclock Posted April 1, 2007 at 11:02 PM Author Report Share #91217 Posted April 1, 2007 at 11:02 PM héhé!!! já está a funcionar!!! Brigadão man!! salvaste-me a noite de programação! 🙂 até usei: global $var1, $var2, var3; que funcionou tal como queria Abraço EDIT: Neste caso não me dá mt jeito usar arrays.. 😄 Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 11:17 PM Report Share #91222 Posted April 1, 2007 at 11:17 PM héhé!!! já está a funcionar!!! Brigadão man!! salvaste-me a noite de programação! 😄 até usei: global $var1, $var2, var3; que funcionou tal como queria Abraço EDIT: Neste caso não me dá mt jeito usar arrays.. 😄 LOL! 😄 De nada 🙂Epá, o global dá jeito, mas eu como não sei o que ias fazer em concreto, dei o exemplo de passares uma array 🙂 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
MROverclock Posted April 2, 2007 at 12:58 AM Author Report Share #91244 Posted April 2, 2007 at 12:58 AM fizeste bem, até pk eu nao me lembrava dessa hipotese e de certeza que me vai dar jeito um pouco mais a frente! 😄 Link to comment Share on other sites More sharing options...
Sven Posted April 2, 2007 at 01:14 AM Report Share #91248 Posted April 2, 2007 at 01:14 AM o ideal era passares as variáveis por referencia o global, pode ser algo manhoso e dificultar um pouco a legibilidade em projectos grandes o return em array é uma opção se o usares em conjunto com o list, tens a variaveis todas declaradas e assignadas numa linha Writing software is more fun than workingO covil do Barão Link to comment Share on other sites More sharing options...
kingless Posted April 2, 2007 at 02:21 AM Report Share #91262 Posted April 2, 2007 at 02:21 AM A sugestão do sven de passar as variáveis por referencia também é boa porque evita-se alguns problemas que as variáveis declaradas como globais podem causar.. vou deixar aqui um pequeno exemplo a partir do primeiro exemplo do MROverclock <?php function ola( &$Tola ){ $Tola = "ola!"; } function TextOla(){ ola( $Tola ); echo $Tola . " Como estás?"; } TextOla(); ?> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now