Portál AbcLinuxu, 3. května 2025 19:30
function nazev_meraku(?int $merak_id): string {...}Kdyz funkci zavolam takto:
echo nazev_meraku($_GET['merak_id']);a merak_id v URL je prazdny, tj:
localhost/skript.php?merak_id=Tak PHP hlasi, ze:
Argument #1 ($merak_id) must be of type ?int, string givenTak jsem si do zahlavi dal toto:
array_walk_recursive($_GET,function(&$value){ $value = (empty($value)) ? null : $value ;});Jenze - a ted se dostavame k jadru - tento kod funguje, pouze kdyz je uvedeny v "HTML" casti kodu, tedy az za "<!doctype html>" Pokud ho umistim ve skriptu drive, nez se zacne generovat HTML vystup, tak funkce nefunguje. Zatimco kod, kterym se v $_POST datech zbavuji nadbytecnych mezer:
array_walk_recursive($_POST,function(&$value){ $value = trim($value); });Mi v pohode funguje jeste pred generovanim HTML vystupu. Proc to tak je? Dekuji
Řešení dotazu:
function nazev_meraku(?$merak_id): string {...}Ten array_walk je uplne zbytecny. Nicmene k tve otazce. GET i POST jsou soucasti pozadavku a s generovanim HTML nemaji nic spolecneho. Hadam, mas nekde v kodu chybu, ale neuvedl si cely kod.
if ($request_method === 'POST')
{...}
Jinak uz jsem tu funkci stejne celou predefinoval a ten array_walk je ted opravdu zbytecny. Asi uz do toho cumim moc dlouho
Diky
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.