This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!
W pracy programisty czasem zdarzają się sytuacje, kiedy pomyłka nie wynika z niewiedzy ani braku doświadczenia osoby piszącej, ale zwykłego zagapienia się i postawienia “innego znaczka” w miejsce tego poprawnego. Tego typu błędy potrafią być bardzo uciążliwe, ponieważ wydaje nam się, że napisaliśmy wszystko poprawnie i bezskutecznie szukamy błędu wpatrując się w kilka linijek, które po prostu “muszą działać”. W dzisiejszym wpisie chciałbym przedstawić problem, który może utrudnić pracę, szczególnie, jeśli jesteśmy już zmęczeni i nie dostrzegamy wszystkich szczegółów na ekranie.
Błąd: Can't use function return value in write context.
Weźmy pod uwagę poniższy kod:
|
|
Na pierwszy rzut oka nie widać błędu - szybkie skanowanie powoduje, że widzimy jedynie prosty warunek i dwie instrukcje echo. Wprawne oko zapewne zauważy, o co chodzi, ale w moim przypadku minęło dobrych kilkanaście sekund, zanim zauważyłem źródło problemu. Powyższy kod spowoduje wyrzucenie na ekran błędu:
Fatal error: Can't use function return value in write context in [path]/write_context.php on line [line]O co chodzi? W linijce nr 2 odczytanie indeksu "input" z tablicy $_POST odbywa się przy użyciu nawiasów okrągłych, które oczywiście nie są tutaj "stosowne". Poniżej zamieszczony został poprawny kod z zaznaczoną "błędną" linijką:
[code lang=“php” highlight=“2”]
wolniejszego pisania kodu, szczególnie, kiedy jesteśmy zmęczeni. ;]