NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 17 - Tvorba vlastních funkcí v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá na David Hartinger
Michaela Radimská:27.7.2018 7:07

Mně to funguje i takhle:

echo secti(10,20);

function secti (int $a, int $b) : int{
    return $a+$b;
}

Vypíše 30...

 
Odpovědět
27.7.2018 7:07
Avatar
Matěj Bína
Člen
Avatar
Odpovídá na Michaela Radimská
Matěj Bína:17.2.2019 15:41

Manuál praví:

Functions need not be defined before they are referenced, except when a function is conditionally defined...

Pokud tedy z nějakého důvodu vytvoříme funkci až jako součást dalšího kódu (v příkladech je to if ... anebo jiná funkce generující funkci), můžeme ji volat až poté, co bezpečně existuje. Jinak si jí teoreticky lze zavolat kdykoli...

Další otázka je, jestli tomu v nějaké starší verzi PHP nebylo jinak. Nezdá se, že by tomu tak bylo.

Každopádně volání funkce až po jejím definování mi přijde normální a přirozené. Je to jeden z důvodů, proč se nemůžu smířit s Javou.

 
Odpovědět
17.2.2019 15:41
Avatar
Daniel Vraspír:22.1.2020 13:46

Mohl bych požádat o přidání možnosti stáhnutí obsahu této lekce abych se mohl podívat, jak je to celé napsané? Děkuji.

Odpovědět
22.1.2020 13:46
Život je jedna velká hra.
Avatar
Robert Benedikt:9.4.2020 15:56

Jak je to s vkládáním souborů (include_once/re­quire_once) ve funkci?

Pokud vytvořím funkci, která má (relativně) dlouhý kód (stovky řádků) a chci ušetřit čas načtení stránky pro případ, že se zrovna tato funkce na dané stránce nepoužije, mohu celý kód této funkce vložit do samostatného souboru a ve funkci ho pouze vložím odkazem na soubor (include_once/re­quire_once).
Při načítání stránky se načte funkce (která má ale pouze 3 řádky).
Pokud na stránce není tato funkce použitá, načetl jsem zbytečně pouze ty 3 řádky.
Pokud se na stránce tato funkce někde volá, spustí se ta funkce a s ní i následující includa.

Nyní to používám, ale nevím, zda to není v něčem kontraproduktivní.

Poradí mi někdo, jestli má opravdu význam dlouhé kódy funkcí řešit raději vkládaným souborem?

 
Odpovědět
9.4.2020 15:56
Avatar
Kamil
Člen
Avatar
Kamil:2.5.2021 12:25

Ahoj,

co je to ta .= ?

 
Odpovědět
2.5.2021 12:25
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá na Kamil
Milan Turyna:3.5.2021 8:06

Pripsani nejakeho textu do jiz vytvoreneho retezce. Priklad:

$text = "Ahoj! ";
$text .= "Dnes je 3.5.2021";
echo $text; // Ahoj! Dnes je 3.5.2021
Odpovědět
3.5.2021 8:06
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Dušan Kovářík:6.7.2021 5:17

Díky za krásný článek. Všechno je napsáno jednoduše a jasně. Jsem rád, že vlastní funkce jsou popsány ještě v "neobjektovém" tutoriálu, protože si můžu už teď mnohem lépe strukturovat kód.

 
Odpovědět
6.7.2021 5:17
Avatar
Jan Hnilica
Tvůrce
Avatar
Jan Hnilica:17.8.2021 12:09

čau, nemůžu rozběhat ty striktní typy, háže mi to error:
Fatal error: strict_types declaration must be the very first statement in the script in…
přitom ten řádek s deklarací strict types mám jako první. Na nějakém fóru jsem se dočetl, že důvodem může být kódování a že je potřeba skript uložit v kódování ANSI, ale to nepomohlo... nevíte někdo?

 
Odpovědět
17.8.2021 12:09
Avatar
Odpovídá na Jan Hnilica
Tomáš Teplík:9.1.2022 13:01

Ahoj,
no zkus to dát hned za začátek php <?php declare(stric­t_types=1);
Nejsem si ale jistý, jestli je to třeba u vyšších verzí php. I bez tohoto mi hlásí php chybu ;-)
no Fatal error: Uncaught TypeError: secti(): Argument #2 ($b) must be of type float, string given

 
Odpovědět
9.1.2022 13:01
Avatar
Ferda Mravenec:15.2.2022 18:19

přijde mi trochu matoucí, používat v příkladech stejné názvy proměnných uvnitř funkce a v dalším zpracování výsledku, viz např zde ($soucet)

<?php

function secti($a, $b)
{
    $soucet = $a + $b;
    return $soucet;
}

$soucet = secti(10, 20);
echo("Součet: $soucet <br />");
echo("Dvojnásobek součtu: " . ($soucet * 2));

?>

udělal bych změnu názvu proměnné třeba ve funkci, např. takto:

<?php

function secti($a, $b)
{
    $vysledek = $a + $b;
    return $vysledek;
}

$soucet = secti(10, 20);
echo("Součet: $soucet <br />");
echo("Dvojnásobek součtu: " . ($soucet * 2));

?>

připdadá mi to tak přehlednější a srozumitelnější, pro úplné začátečníky určitě

Editováno 15.2.2022 18:21
 
Odpovědět
15.2.2022 18:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 22.