Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmienne lokalne na zmienne globalne, global $zmienna; nie działa?
tomilipin
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Witam,
od wieków mam ten problem... Szukałem już na tutejszym forum, na forum Webcity, na php.net i nigdzie nie znalazłem rozwiązania (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Mam pewną funkcję, która tworzy sobie dwie zmienne, które znowu później muszę sprawdzić i wyświetlić odpowiedni komunikat. Wygląda to schematycznie, w wielkim uproszczeniu tak:
  1. <?php
  2. function test($autor, $tresc) {
  3.  if ($autor==&#092;"\" or $tresc==\"\") {
  4.  $error=&#092;"1\";
  5.  }
  6. } // koniec funkcji
  7.  
  8. if ($error==&#092;"1\") {
  9. echo &#092;"Błąd\";
  10. }
  11. else {
  12. echo &#092;"W porządku\";
  13. }
  14. ?>
I oczywiście zawsze pokazuje się "W porządku" bo zapewne nie widać zmiennej $error. Co zrobić aby była ona zmienną globalną?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
id4
post
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Witaj

Zwróć wynik funkcji:

  1. <?php
  2. function test($autor, $tresc) {
  3.          if ($autor==&#092;"\" or $tresc==\"\") {
  4.              return $error=&#092;"1\";
  5.          }
  6. }
  7.  
  8. $error= test($autor, $tresc);
  9.  
  10. if ($error==&#092;"1\") {
  11. echo &#092;"Błąd\";
  12. }
  13. else {
  14. echo &#092;"W porządku\";
  15. }
  16. ?>


Ten post edytował id4 24.06.2005, 18:32:24
Go to the top of the page
+Quote Post
Fipaj
post
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie trzeba...

Niech funkcja zwraca $error. daj na końcu funkcji "return $error;"


@id4: byłeś 5 sekund szybszy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował Fipaj 24.06.2005, 18:32:30
Go to the top of the page
+Quote Post
tomilipin
post
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Ok, id4, jesteś genialny - działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Dziękuję Wam obu za odpowiedzi ale mam jeszcze jedno pytanie: chciałbym wyświetlić poza funkcją dwie zmienne, użyte wewnątrz niej (a więc lokalne), będzie to $error, i $error_text. Jak to zrobić?

Spróbowałem tak, ale niestety nie działa:
  1. <?php
  2. function test($autor, $tresc) {
  3.  if ($autor==&#092;"\" or $tresc==\"\") {
  4.  return $error[1]=&#092;"1\";
  5.  return $error[2]=&#092;"Wpisz autora\";
  6.  }
  7. }
  8.  
  9. $error= test($autor, $tresc);
  10.  
  11. if ($error[1]==&#092;"1\") {
  12. echo $error[2];
  13. }
  14. else {
  15. echo &#092;"W porządku\";
  16. }
  17. ?>


Ten post edytował tomilipin 24.06.2005, 18:44:35
Go to the top of the page
+Quote Post
Liko
post
Post #5





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function test($autor, $tresc) {
  3.  if ($autor==&#092;"\" or $tresc==\"\") {
  4.  return array( 1, 'Wpisz autora' );
  5.  
  6.  }
  7. }
  8.  
  9. $error = test($autor, $tresc);
  10.  
  11. if ($error[0]==&#092;"1\") {
  12. echo $error[1];
  13. }
  14. else {
  15. echo &#092;"W porządku\";
  16. }
  17. ?>


Ten post edytował Liko 24.06.2005, 19:22:52
Go to the top of the page
+Quote Post
tomilipin
post
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Dziękuję za pomoc!
Go to the top of the page
+Quote Post
-seemerlin-
post
Post #7





Goście







Można też tak:

  1. <?php
  2. $error = 0;
  3. $error_text = &#092;"\";
  4.  
  5. function test($autor, $tresc) {
  6. global $error,$error_text;
  7. if ($autor==&#092;"\" or $tresc==\"\") {
  8.  $error=&#092;"1\";
  9.  $error_text = &#092;"bląd\";
  10. }
  11. } // koniec funkcji
  12.  
  13. test(&#092;"autor\",\"\");
  14. if ($error==&#092;"1\") {
  15. echo $error_text;
  16. }
  17. else {
  18. echo &#092;"W porządku\";
  19. }
  20. ?>


Chyba wygodniejsze niz ją gdzies przypisywać, albo tworzyc tabele.

Pozdrawiam.
Go to the top of the page
+Quote Post
Liko
post
Post #8





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(seemerlin @ 2005-06-30 09:14:58)
Chyba wygodniejsze niz ją gdzies przypisywać, albo tworzyc tabele.

Pozdrawiam.

Jakie tabele?
Go to the top of the page
+Quote Post
-knur_wielki_wszechpotężny-
post
Post #9





Goście







tablice...

EOT,
zamykam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:44