Autor Zpráva
xlifer
Profil
Je lepší použít include nebo funkci? Jaký je v tom zásadní rozdíl? Děkuji.

V include je lepší, že nemusím definovat a předavat parametry a přistupovat přes global apod. jen si zkrátka kus kódu uložím do souboru pro lepší přehlednost a použitelnost třeba i na jiném místě webu...

Přiklad:

<?php
function vypisText($text)
{
echo "Vypis tento $text";
}

while (...) {
vypisText($text);
}
?>


nebo

vypisText.php:

<?php
echo "Vypis tento $text";
?>

kod:

<?php
while (...) {
include "vypisText.php";
}
?>
panther
Profil
xlifer:
co si slibuješ od funkce, která vypíše text jako její parametr? Proč nepoužiješ rovnou echo?

pokud je text v nějakém souboru (typicky šablona), pak samozřejmě include.
xlifer
Profil
panther:

Aha, zapoměl jsem připsat, že je to jen pro příklad, ale funkce je samozřejme větší blok kódu - produktová karta eshopu, kde je nazev, popis, cena, apod. Tento kód používám jak na výpisu kategorie, tak jako detail zboží. Je to vlastně jeden blok kódu, který je stejný pro výpis i detail. Snad jsem to napsal k pochopení.
Ugo
Profil
funkce která zajistí vykreslení souboru (šablony, klidně z db) na základě parametrů -> kombinace obou možností ;)
Joker
Profil
xlifer:
Je lepší použít include nebo funkci? Jaký je v tom zásadní rozdíl? Děkuji.
To spolu přece nesouvisí, jedno nelze nahradit druhým (resp. v určitých situacích možná částečně ano, ale obecně ne).

V situaci ukázané výše, řekněme „převezmi hodnotu a nějak ji zpracuj“, tam jednoznačně patří funkce, neumím si moc představit, jak by to fungovalo s include. Jako že bych musel předem naplnit proměnné daných jmen a pak zavolat include? To mi přijde ujeté.

Naopak include slouží k vkládání HTML či PHP kódu ze společných souborů do jiných souborů, abych ho nemusel všude kopírovat. Čili samozřejmě to jde i kombinovat, můžu mít společný PHP soubor s užitečnými funkcemi a pak si ho do skriptu vložit přes include, ale nejde to navzájem zaměňovat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0