Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [problem] klasa i funkcja
Forum PHP.pl > Forum > PHP
nitro18
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ę.
c3zi
Witam,

Popraw pozyskiwanie danych metoda GET ...
$go=$_GET['go'];
nitro18
no i nadal nic... to samo...
barat
  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. ?>
nitro18
Zadziałało ze switch smile.gif Masz u mnie plusik + smile.gif
barat
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)
mike
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.
nitro18
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. ?>
barat
@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
nitro18
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.