Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [problem] klasa i funkcja
nitro18
post 28.05.2007, 09:25:30
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


Mam problem z klasą:


class.php
  1. <?php
  2. class klasa{
  3.  
  4. function create(){
  5.  
  6. $go=$_GET[go];
  7. if($go==""){
  8. echo 'Wywołanie gdy go nie ma wartości';
  9. }
  10.  
  11. if($go=="war1"){
  12. echo 'go przyjęło wartość!';
  13. }
  14. }
  15. }
  16. ?>


plik wywołujący klasę:
  1. <?php
  2. include 'class.php';
  3. $class= new klasa;
  4. $class->create();
  5. ?>


kiedy wywołuję plik przez WWW class.php to go nie przyjmuje wartości a więc wyświetli komunikat 'Wywołanie gdy go nie ma wartości'.

Problem jest natomiast gdy go przyjmie wartość war1 (czyli class.php?go=war1) wtedy wyświetla komunikat ten pierwszy + ten drugi, a ja chce żeby tylko drugi wyświetlał?
Co zrobiłem źle? Przecież dobrze napisałem, może coś przeoczyłem podczas pisania klasy?

Za pomoc z góry dziękuję.

Ten post edytował nitro18 28.05.2007, 10:02:44
Go to the top of the page
+Quote Post
c3zi
post 28.05.2007, 09:58:43
Post #2





Grupa: Zarejestrowani
Postów: 266
Pomógł: 20
Dołączył: 15.11.2006
Skąd: Koszalin

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


Witam,

Popraw pozyskiwanie danych metoda GET ...
$go=$_GET['go'];


--------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Go to the top of the page
+Quote Post
nitro18
post 28.05.2007, 10:02:17
Post #3





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


no i nadal nic... to samo...
Go to the top of the page
+Quote Post
barat
post 28.05.2007, 10:12:28
Post #4





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 19.05.2007

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


  1. <?php
  2. class klasa{
  3.  
  4. function create(){
  5.  
  6. $go=$_GET['go'];
  7. if(!$go){
  8. echo 'Wywołanie gdy go nie ma wartości';
  9. }
  10. elseif($go=="war1"){
  11. echo 'go przyjęło wartość!';
  12. }
  13. }
  14. }
  15. ?>


questionmark.gif

Ale jeśli chcesz sprawdzać konkretne wartości których się spodziewasz może zainteresuj się konstrukcją switch ?

A jeśli wartość $go nie ma znaczenia chcesz tylko sprawdzić czy ma jakąś wartość i wyświetlić info o tym to :

  1. <?php
  2. class klasa{
  3.  
  4. function create(){
  5.  
  6. $go=$_GET['go'];
  7. if(!$go){
  8. echo 'Wywołanie gdy go nie ma wartości';
  9. }
  10. else{
  11. echo 'go przyjęło wartość!';
  12. }
  13. }
  14. }
  15. ?>


albo

  1. <?php
  2. class klasa{
  3.  
  4. function create(){
  5.  
  6. $go=$_GET['go'];
  7. echo (!$go?'Wywołanie gdy go nie ma wartości':'go przyjęło wartość!');
  8. }
  9. }
  10. ?>


Ten post edytował barat 28.05.2007, 10:22:31
Go to the top of the page
+Quote Post
nitro18
post 28.05.2007, 10:23:02
Post #5





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


Zadziałało ze switch smile.gif Masz u mnie plusik + smile.gif
Go to the top of the page
+Quote Post
barat
post 28.05.2007, 10:39:00
Post #6





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 19.05.2007

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


Znaczy sam sobie napisałeś switch'a? Bo te co ja napisałem to wszystko if-else smile.gif
Pamietaj, że w switch case może byc tylko stałą wartością, nie może być warunków typu większe/mniejsze od itp - musi to być tekst/liczba/wartość smile.gif
  1. <?php
  2. switch ($zmienna) {
  3. case 'cos':
  4. echo 'zmienna ma wartosc "cos"';
  5. break;
  6.  
  7. case 'cos_innego':
  8. echo 'zmienna ma wartosc "cos_innego"';
  9. break;
  10. }
  11. ?>


Switch warto stosować gdy z góry wiemy jakie chcemy przetworzyć wartości i innych nie dopuszczamy

(np przy sprawdzania praw dostępu użyszkodnika gdzie 1 to user, 2 moderator 3 admin - można jeszcze ustawić dafault (gdy żadne z tych trzech nie nastąpiło)

Ten post edytował barat 28.05.2007, 10:41:14
Go to the top of the page
+Quote Post
mike
post 28.05.2007, 10:51:54
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(barat @ 28.05.2007, 11:39:00 ) *
Pamietaj, że w switch case może byc tylko stałą wartością, nie może być warunków typu większe/mniejsze od itp - musi to być tekst/liczba/wartość
Taaaa, coś ty? tongue.gif .....
  1. <?php
  2.  
  3. $zmienna = 15;
  4.  
  5. switch($zmienna) {
  6. case $zmienna < 10:
  7.  echo 'Zmienna mniejsza od 10';
  8.  break;
  9. case $zmienna > 10 && $zmienna < 20:
  10.  echo 'Zmienna większa od 10 i mniejsza od 20';
  11.  break;
  12. default:
  13. echo 'Zmienna większa od 20';
  14. }
  15.  
  16. ?>

W normalnym języku owszem, w PHP możesz kombinowac jak tylko chcesz.
Go to the top of the page
+Quote Post
nitro18
post 28.05.2007, 11:07:38
Post #8





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


nie rozumiem Cię. Doradziłeś żebym zobaczył czy switch pomoże. i pomogło:

  1. <?php
  2. $odbior=$_GET[odbior];
  3. switch ($odbior){
  4. case '': echo 'wartość = 0'; break;
  5. case 'war1': echo 'wartość = war1'; break;
  6. case '1': echo 'wartość = 1'; break;
  7. case 'war2': echo 'wartość = war2'; break;
  8. }
  9. ?>


przecież z góry wiem jakie będą wartości dla zmiennej odbiór.


normalnie gdybym nie korzystał z klasy to mogę napisać korzystając z if..

  1. <?php
  2. $odbior=$_GET[odbior];
  3. if($odbior==""){
  4. echo 'wartość = 0';
  5. }
  6. if($odbior=="war1"){
  7. echo 'wartość = war1';
  8. }
  9. if($odbior==1){
  10. echo 'wartość = 1';
  11. }
  12. if($odbior=="war2"){
  13. echo 'wartość = war2';
  14. }
  15. ?>


Ten post edytował nitro18 28.05.2007, 11:10:43
Go to the top of the page
+Quote Post
barat
post 28.05.2007, 11:10:41
Post #9





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 19.05.2007

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


@mike

no patrz, że człowiek codziennie uczy się czegoś nowego smile.gif
Ja nie wiem gdzie ja to wyczytałem biggrin.gif

@nitro18

Po prostu sie zastanawiałem, czy uznałeś, że swich to któryś z tych przykładów który podałem czy jednak napisałeś własny smile.gif

Ten post edytował barat 28.05.2007, 11:12:35
Go to the top of the page
+Quote Post
nitro18
post 28.05.2007, 11:12:17
Post #10





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


takie jest nasze życie, drogi kolego winksmiley.jpg


PS. barat, tak naprawdę mam podobną klasę do tej, z tym byłym już problemem, ale nie chciałem już kopiować kodu bo długi jest. Przedstawiłem krótko problem na tym samym przykładzie. I problem rozwiązany. smile.gif

Ten post edytował nitro18 28.05.2007, 11:19:27
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 Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:03