Autor Zpráva
Jan Tvrdík
Profil
Dokáže někdo vysvětlit rozdíl mezi pojmy deklarace a definice (v PHP).
XYQ
Profil
=D...jakož týhle slová dávají smysl jednosměrný...v php používam pouze "definice"... Jinak deklarovat -> dovést z jiného souboru proměnnú,definovat -> v tom istém souboru ...aspoň podle mne...pokud je to omyl,opravit...
SwimX
Profil
Jinak deklarovat -> dovést z jiného souboru proměnnú,definovat -> v tom istém souboru
to je myšlený v php nebo obecně?
obecně by to mělo být takle:
Deklarace - nám říká že určitá proměnná či funkce někde existuje - s tím většinou spojené určení typu
Definice - Deklaruje proměnnou nebo funkci a alokuje pro ní paměť - nastavení hodnoty
AM_
Profil
Rozdíl je poměrně jednoznačný a týká se obecně teorie programovacích jazyků.
Deklarace- z anglického declare=prohlásit,vyhlásit - je příkaz, který "říká, že se funkce/proměnná bude v programu vyskytovat".
Definice - od definovat, formulovat - je již zápis, který již přesně určí, o co se jedná.
U proměnných vypadá deklarace a definice dost podobně, na příkladu funkce je ale názornější, o co jde (příklad píši v jazyce C, nejsem si jistý, jestli PHP deklarace funkcí vůbec nějak využívá, já to nikdy nepoužil):

Deklarace funkce:
int Secti(int a, int b);
Definice funkce:
int Secti(int a, int b){
return a+b;
}
S typickým příkladem deklarací a definic se můžeme setkat například ve stále pro výukové účely používané prostředí Turbo Pascal při vytváření knihoven (units). Zdrojový kód má dvě části: interface, kde [b]deklarujeme[/b] všechny veřejné funkce, procedury a proměnné (popř. další entity), a implementation, kde povinně [b]definujeme[/b] všechny deklarované funkce a procedury (a můžeme dopsat další, které, pokud nejsou uvedeny v implementation, nebudou z programu přístupné, podobně jako private metody objektových jazyků).
XYQ
Profil
„Jinak deklarovat -> dovést z jiného souboru proměnnú,definovat -> v tom istém souboru “
to je myšlený v php nebo obecně?
obecně by to mělo být takle:
Deklarace - nám říká že určitá proměnná či funkce někde existuje - s tím většinou spojené určení typu
Definice - Deklaruje proměnnou nebo funkci a alokuje pro ní paměť - nastavení hodnoty

obecně...
Jan Tvrdík
Profil
Toto je definice:
class Auto
{
    public $barva;
}


Toto je také definice.
$auto = new Auto;

A deklarace v PHP vůbec neexistuji. EDIT: teď mě napadá, že za deklaraci by mohl být považován zápis "public $barva;"

Je to tak?
TFSi
Profil
A deklarace v PHP vůbec neexistuji.
http://cz2.php.net/declare

Aber nein!

A rozdíl mezi deklarací a definicí v PHP:
http://www.php.net/declare vs. http://www.php.net/define

Jinak mimo programování:
deklarace je něco jako potvrzení, vyjádření (deklarace nezávislosti = vyjádření nezávislosti)
definice je vyjádření významu slova
_es
Profil
TFSi
A rozdíl mezi deklarací a definicí v PHP:
http://www.php.net/declare vs. http://www.php.net/define


Skôr asi pôjde o odlišné použitie anglických slov declare a define, než na deklaráciu a definíciu premenných.
nightfish
Profil
„[i]A rozdíl mezi deklarací a definicí v PHP:
http://www.php.net/declare vs. http://www.php.net/define
aneb mícháme jablka, brambory a uhlí
PavelXXX
Profil *
asi tak nejak,
define - slouzi k definovani MAKER v php :)... to s definici a deklaraci nema zadnou souvislost ;)
declare jsem nikdy nepouzil.

z5 k puvodni otazce:

deklarace obecne v jakemkoliv jazyce = "rikam, ze takovato funkce / trida existuje a nekde bude popsana"
definice - definuje funkci/tridu jake ma parametry, metody, co dela atd...

typicky priklad: definice / deklarace funkce v c++ viz _AM:
Deklarace funkce:

int Secti(int a, int b);

Definice funkce:

int Secti(int a, int b){
return a+b;
}
PerNyk
Profil *
Ahoj, je to jak říká SwimX... tedy deklarace - nealokuje paměť a definice alokuje paměť

příklad v jazyce java:

int c; ... toto je deklarace, zavádím proměnnou, ale nealokuji paměť (nepřiřazuji jí žádnou hodnotu/obsah)
c = 5; ... toto je definice, alokuji místo v paměti a přiřazuji proměnné určitou hodnotu/obsah

int a = 25; ... toto je spojení deklarace s definicí
Nox
Profil
[b]PavelX

PavelXXX:
slouzi k definovani MAKER v php :)
šmarja, v PHP žádná makra nejsou ;) define() je pro konstanty (nově i keyword const)
Mastodont
Profil
To je také definice.
$auto = new Auto;

Za mých mladých let to bejvávalo přiřazení ...
tiso
Profil
A dôvod prečo sa to opäť zbytočne vyťahuje? nightfish-ova odpoveď nestačí?
Moderátor Joker: Odstraněn přivolávač moderátorů, přes dva týdny to nikdo neřešil a teď už to nemá cenu, když téma (snad) zase usnulo.
blizzboz
Profil
Jan Tvrdík:

A deklarace v PHP vůbec neexistuji.

A čo abstraktné metódy v abstraktných triedach a interfejsoch to nie sú deklarácie? V Interfejse sú deklarované a v triede ktorá ich implementuje sú definované a implementované.

Najlepšie princíp a zmysel deklarácie pochopíš na tomto pascal zdrojáku:

Function Add(A, B : Integer): Integer; Forward; (* Deklarácia funkcie "Add" *)
 
Function Bad(A, B, C : Integer) : Integer;
 
Begin
 Bad := Add(Add(A,B),C); (* Tu je volaná funkcia "Add" ktorá ešte nebola definovaná, ale už bola deklarovaná *)
End;
 
Function Add(A, B : Integer) : Integer; (* Definícia funkcie "Add" *)
Begin
 Add := A + B;
End;

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: