• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Jak obsłużyć pustą funkcję, która zawiera argumenty?

Object Storage Arubacloud
0 głosów
332 wizyt
pytanie zadane 14 kwietnia 2016 w PHP przez HaKIM Szeryf (87,590 p.)
zamknięte 14 kwietnia 2016 przez HaKIM

Cześć.

Do szczegół, dajmy na to iż mam taki kod:

[...]
class Return_something
{
       [...]
        public function return_variable($var)
        {
            if(empty($var))
            {
                $var = 'Some text';
            }
            return $var;
        }
}

No dobrze, spróbujmy więc wywołać funkcję, zabezpieczyliśmy się przed pustym wynikiem:

    $getSomething = new Return_something();
    $getSomething->return_varaible('');

Jak dostrzegliście w... 

return_varaible('');

...znajdują się '', dlatego nic się nie wysypuje, wszystko jest ok, lecz, jeżeli chciałbym wywołać funkcje w taki sposób:

    $getSomething = new Return_something();
    $getSomething->return_varaible();

Zostaje zwrócony wynik, oraz errror:

[...] Missing argument 1 for [...]

Jakieś pomysły?

Tak, mógłbym użyć małpy, choć to nie będzie rozwiązanie błędu a zamaskowanie, czego nie chcę.

komentarz zamknięcia: Problem rozwiązany.

2 odpowiedzi

+1 głos
odpowiedź 14 kwietnia 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 14 kwietnia 2016 przez HaKIM
 
Najlepsza

Ustaw wartość domyślną dla danego argumentu, która zostanie użyta jeśli nie zostanie on podany.

public function return_variable($var = 'ha!')

I teraz jeśli wywołasz funkcję w taki sposób

$getSomething->return_varaible();

czyli bez podanego argumentu to pod $var będzie domyślne "ha!" :)

komentarz 14 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Może zamiast HA! Nie podano liczby
komentarz 14 kwietnia 2016 przez HaKIM Szeryf (87,590 p.)
Próbowałem czegoś takiego z $var = null; - Zaraz podam Ci error:

Em... Nie ma erroru, działa. Dziękuję. :)
komentarz 14 kwietnia 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
null również powinno działać bez problemu ;) Spoko.
+1 głos
odpowiedź 14 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Może sprawdź if`em czy jest ustawiona ta zmienna, a dopiero potem operuj na niej ;)
komentarz 14 kwietnia 2016 przez HaKIM Szeryf (87,590 p.)
Ale czy tego nie zrobiłem? if(empty())

Hmmm... W sumie nie próbowałem z if(isset()), anyway, pomysł Arkadiusza jest prostszy, dodatkowo nie potrzeba if'a do sprawdzania, czy wartość została podana. :)
komentarz 14 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Nie przyszedł mi do głowy gdy pisałem odpowiedź ;(
komentarz 14 kwietnia 2016 przez HaKIM Szeryf (87,590 p.)
I to jest najlepsze w forum, można poznać pare rozwiązań, a sami możemy zdecydować który będzie tym najlepszym. : )
komentarz 14 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Ale masz problem który wybrać? xD
komentarz 14 kwietnia 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
isset() nic tu nie da, skoro jest zdefiniowane, że ma być argument to musi on być przekazany i tyle, jeśli go nie ma to mamy błąd.

Dowód: https://3v4l.org/FpOCb - w pierwszym przypadku mamy błąd w drugim go nie ma ;)
komentarz 14 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Wiem, ale swoją drogą to nie ma else, i np. w else, mógłbyć twój sposób nie?
1
komentarz 14 kwietnia 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Nie za bardzo rozumiem, gdzie else i gdzie mój sposób skoro podać wartości domyślne można tylko przy definiowaniu funkcji? Pokaż to w kodzie, będzie najprościej.

Podobne pytania

0 głosów
1 odpowiedź 304 wizyt
0 głosów
2 odpowiedzi 563 wizyt

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...