Autor Zpráva
quatzael
Profil
Jaký je prosím rozdíl mezi $date_a a $date_b?

$str = "2006-05-18";
$date_a = date_create($str);
$date_b = strtotime($str);
pcmanik
Profil
quatzael:
date_create je alias pre konštruktor triedy DateTime, čo by si mimochodom zistil, keby si sa pozrel do dokumentácie.

Pričom date_create vracia objekt a strtotime vracia timestamp.
quatzael
Profil
pcmanik:
A timestamp není objekt?


Btw, do dokumentace jsem se díval, ale nechápu to..
pcmanik
Profil
quatzael:
Timestamp je int.

DateTime je novšie objektové rozhranie na prácu s dátumom a časom, prečo vytvorili aj neobjektový prístup netuším.
DJ Miky
Profil
pcmanik:
prečo vytvorili aj neobjektový prístup netuším

Sám sis odpověděl: Protože „neobjektový“ přístup vznikl mnohem dříve. DateTime je k dispozici až od PHP 5.2, strtotime a podobné funkce už byly obsaženy v PHP 4, tedy v době, kdy byl objektový návrh PHP ještě v plenkách.
juriad
Profil
DJ Miky:
Otázka byla, proč vznikla funkce date_create, která se používá procedurálním stylem. (A další funkce ze stejné rodiny: http://php.net/manual/en/ref.datetime.php).
Podle mě chtěli nechat uživatele, aby používali to, co se jim víc líbí. Osobně s tím nesouhlasím (stejně jako se jmennou (ne)konvencí PHP), ale jediné, co můžu dělat je procedurální API třídy DateTime nepoužívat.
DJ Miky
Profil
Aha, omlouvám se, špatně jsem pochopil otázku. Není to jen u DateTime, některé další knihovny také nabízí jak čistě objektový, tak procedurální způsob práce. Oficiální důvod také neznám, ale domnívám se, že to může být dáno i rozdílnou složitostí zápisu. Procedurální způsob je přeci jen jednodušší na napsání (tím také nechci tvrdit, že se mi líbí) a např. předat samostatnou funkci jako callback nějaké mapovací funkci (např. array_map) znamená méně psaní, než totéž provést s metodami objektů.
pcmanik
Profil
DJ Miky:
Ťažko povedať... Skôr mi to príde ako také prechodové obdobie. Napr. PDO už neobjektový prístup ani nemá, čo je podľa mňa len dobre.
xROAL
Profil
pcmanik:
Napr. PDO už neobjektový prístup ani nemá, čo je podľa mňa len dobre.
PDO niekedy aj malo procedurálny prístup? Čo si pamätám, tak len mysqli, a aj toho sa pomaly začínajú zbavovať a ponechávajú ho čisto objektové. Procedurálne funkcie mysqli_ už sú označené ako deprecated.
Ale inak si tiež myslím, že tento dvojitý prístup bol (a z časti ešte pretrváva) kvôli tomuto akémusi "prechodnému obdobiu".
pcmanik
Profil
xROAL:
Nie nemalo, zle som sa vyjadril.

Odkiaľ máš že procedurálne funkcie mysqli su označené ako deprecated? V dokumentácii sa mi nepodarilo nič nájsť. Pokiaľ viem len rozhranie mysql je celé označené ako deprecated.
xROAL
Profil
pcmanik:
Odkiaľ máš že procedurálne funkcie mysqli su označené ako deprecated?
Možno som sa unáhlil a nie všetky sú tak označené. Každopádne v dokumentácii sú mysqli_ funkcie pod nadpisom "Aliases and deprecated Mysqli Functions". Zrejme len niektoré, a nie všetky ako som sa domnieval, sú už označené ako deprecated.
Edit: Ako si to teraz všímam tak skutočne tam nie sú všetky, takže som asi len zle pochopil to, na čo som v dokumentácii narazil.

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