Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przekazanie zmiennej do funkcji
denis13wroc
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.02.2009

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


Witam, mam nadzieje że moje pytanie będzie proste :-)

Chciałbym przekazać do funkcji wartość zmiennej ale nie przekazując jej jako parametr. Najlepiej pokaże to na kodzie.

  1. $zmienna = 999;
  2.  
  3. function sprawdz () {
  4.  
  5. if ($zmienna > 100) {
  6. $out = '$zmienna jest wieksza od 100';
  7. }
  8. return $out;
  9. }
  10.  
  11. echo sprawdz(); // I tutaj funkcja pokazuje mi prawidlowe info


Chodzi mi o to aby nie przekazywać zmiennej a uczynić ją widoczną dla funkcji, jeżeli istnieje taka możliwość to proszę o podpowiedź.
Pozdrawiam

Ten post edytował denis13wroc 25.10.2010, 19:22:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nowofresh
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 8.09.2010

Ostrzeżenie: (20%)
X----


To dodaj jeszcze warunek, że jeżeli zgadza się to pokazuje to co chcesz. elseif.


--------------------
Usunięto.
Go to the top of the page
+Quote Post
Zyx
post
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Istnieje, ale nie powinno się tak robić, bo tak napisany skrypt przestanie Ci działać w PHP6, hehehe smile.gif. Inna sprawa, że jest to najprostszy sposób na rozwalenie sobie skryptu. Później będziesz chciał coś zmodyfikować i się nie połapiesz w tych skutkach ubocznych, jakie Twoje funkcje będą robić w różnych zmiennych. Jak chcesz coś przekazać do funkcji, to od tego masz argumenty i tyle, a nie kombinujesz jak koń pod górę i pijany słoń w składzie porcelany. Dlatego też nie podam Ci tego magicznego słowa kluczowego.

Ten post edytował Zyx 25.10.2010, 19:26:05


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
nowofresh
post
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 8.09.2010

Ostrzeżenie: (20%)
X----


Cytat(Zyx @ 25.10.2010, 20:25:00 ) *
Istnieje, ale nie powinno się tak robić, bo tak napisany skrypt przestanie Ci działać w PHP6,


Poważnie. Dlaczego ?


--------------------
Usunięto.
Go to the top of the page
+Quote Post
Zyx
post
Post #5





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Hmmm... dobra, poprawka: chyba przestanie. Jest taki burdel z tym, co w końcu wejdzie do PHP6, że już sam się pogubiłem - w każdym razie gdzieś trafiłem na informacje, że to magiczne słówko ma wylecieć (i w sumie byłoby dobrze, gdyby tak się stało). Nie zmienia to jednak faktu, że jego używanie, zwłaszcza w dużych ilościach jest wybitnie nieeleganckie, świadczy o ujemnych umiejętnościach programistycznych i prowadzi często do ciężkich do znalezienia, egzotycznych błędów, że zmieniamy rzecz A, a tu nagle przestaje działać B.

Ten post edytował Zyx 25.10.2010, 19:32:21


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
nowofresh
post
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 8.09.2010

Ostrzeżenie: (20%)
X----


Niech ktoś wyjaśni czego nie powinno się stosować aby nie jebnąć z PHP6.


--------------------
Usunięto.
Go to the top of the page
+Quote Post
denis13wroc
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.02.2009

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


w sumie... wartość którą chcę przekazać nie musi być przypisana do zmiennej bo nie musi być ona modyfikowana, może to być 'stała'.
A tak na boku... to mogę prosić jednak o odpowiedź ?
Go to the top of the page
+Quote Post
nowofresh
post
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 8.09.2010

Ostrzeżenie: (20%)
X----


global

Ten post edytował nowofresh 25.10.2010, 20:01:48


--------------------
Usunięto.
Go to the top of the page
+Quote Post
denis13wroc
post
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.02.2009

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


Z tego co testowałem... to global pomoże mi w przypadku takim:

  1. 1.
  2. $zmienna = 999;
  3.  
  4. function sprawdz () {
  5.  
  6. global $krzeslo = "tekst krzesla";
  7.  
  8. if ($zmienna > 100) {
  9. $out = '$zmienna jest wieksza od 100';
  10. }
  11. return $out;
  12. }
  13.  
  14. echo sprawdz(); // I tutaj funkcja pokazuje mi prawidlowe info
  15. echo $krzeslo;
Go to the top of the page
+Quote Post
zegarek84
post
Post #10





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


a czy zamiast global'a to nie lepiej pchnąć w kierunku zmiennych statycznych?? - może od podstaw oop daleko ale... pozatym to też prawie global...
  1. // definija klasy - funkcja nie potrzebna ale... ;)
  2. class jakas {
  3. static public $zmienna = 999;
  4.  
  5. public static function mozeZTegoSkozysta() {
  6. $out = '';
  7. if (self::$zmienna > 100) {
  8. $out = '$zmienna jest wieksza od 100';
  9. }
  10. return $out;
  11. }
  12. }
  13. // CIAŁO LOGICZNE APLIKACJI - pomijając definicję klasy potrzebną przynajmniej bez funkcji
  14. echo jakas::mozeZTegoSkozysta(); // no tutaj definicja tej funkcji była potrzebna
  15. // jeśli z funkcjo statycznych nie skożystał to przynajmniej z takiej klasy jak z kontenera zmiennych globalnych - mniejsze zło ;p
  16. jakas::$zmienna = 222; // a inna wartość dla przykładu ;)
  17.  
  18. function sprawdz () {
  19.  
  20. if (jakas::$zmienna > 100) {
  21. $out = '$zmienna jest wieksza od 100';
  22. }
  23. return $out;
  24. }
  25.  
  26. echo sprawdz();

dalekie to od opp ale czy nie lepiej ukierunkowywać w tą stronęquestionmark.gif

Ten post edytował zegarek84 25.10.2010, 20:59:52


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 18:09