Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Fatal error: Can't use method return value in write context
Forum PHP.pl > Forum > PHP > Object-oriented programming
Athlan
Pytanie dotyczy obiektów.

Mam taki kod:

  1. <?php
  2. if($oInput->post('name') === null || empty($oInput->post('name')))
  3. $aErrors[0] = 'Podaj nick!';
  4. ?>


jak widać jest to kawałek validacji formularza. Metoda post() zwraca null w przypadku kiedy klucz podany w jej paramerze nie istnieje w tablicy $_POST, w przeciwnym wypadku zwraca wartość.

O dziwo okazuje się, że to jest niepoprawne. Nigdy takiego błędu nie spotkałem:
Kod
Fatal error: Can't use method return value in write context in ...


Błąd dotyczy empty(). Moszę uzyć takiego zapisu:
  1. <?php
  2. if($oInput->post('name') === null || $oInput->post('name') == '')
  3. $aErrors[0] = 'Podaj nick!';
  4. ?>


Teraz działa smile.gif

Nie rozumiem, dlaczego nie mogę użyć funkcji empty() dla czegoś co zwraca mi metoda, generalnie jest to zwykla zmienna.

Teoretycznie powinno działać - czego sie przyczepić smile.gif

Kolejny bug w php?

--- EDIT ---

to samo zaobserwowałem dla isset()
mysz
isset() i empty() nie są fnkcjami tylko konstrukcjami językowami, więc mają swoje prawa. empty() imo w ogóle nie powinno być używane, wprowadza więcej zamieszania niż pożytku.

A co do samego empty() i Twojego przypadku, to wystarczy zajrzeć do manuala, tam masz wyjaśnienie.
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.