Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja przyjmuje dwa argumenty - jak podać tylko jeden?
Forum PHP.pl > Forum > Przedszkole
krzychusss
Witam.

Mam taki problem: mam funkcję, która przyjmuje dwa argumenty, jednak w pewnej sytuacji chcę podać jej tylko jeden. Na lokalnym serwerze wszystko działa, jak należy, jednak na produkcyjnym wywala ostrzeżenie:

CODE
Warning: Missing argument 1 for showArticles()


Funkcja skonstuowana jest tak:

  1. function showArticles($arg1, $arg2) {
  2. if (empty($arg1)) {
  3. //instrukcje
  4. }
  5. else {
  6. //instrukcje
  7. }
  8. }


Wszystko działa, tylko wywala to ostrzeżenie. Jak to obejść?
melkorm
Włącz lokalnei wyświetlanie wszystkich błędów, a dla funkcji dla drugiego parametru daj defaultową wartość np : false / null.
mortus
Zwrócę jeszcze uwagę na użycie funkcji empty(). Trzeba pamiętać, że ta funkcja zwraca prawdę również wtedy, gdy argument ma wartość 0, czy false (więcej w manualu), dlatego jej użycie musi być w tym przypadku przemyślane. O tym jak nadać domyślne wartości argumentom funkcji możesz poczytać tutaj (warto przejrzeć przykłady).
peter13135
Nie pomyliłeś z isset questionmark.gif

manual mówi:
Cytat
The following things are considered to be empty:
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)
mortus
Nie. Przykład:
  1. $pustaZmienna = 0;
  2. if(isset($pustaZmienna)) {
  3. echo 'Pusta zmienna jest ustawiona.<br />';
  4. }
  5. if(empty($pustaZmienna)) {
  6. echo 'Ale nadal jest pusta.<br />';
  7. }


Zdanie "The following things are considered to be empty" tłumaczymy "Wymienione poniżej rzeczy z założenia są puste" (czy jakoś tak).
peter13135
Racja, coś mi sie pomieszało wink.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.