« 1 2 3 »
Autor Zpráva
Keeehi
Profil
ale zároveň se vám zobrazí chybové hlášení - fatal error.
To nemusí být ve 100% případů pravda. Nelze na to spoléhat.

0123 mi nepřijde jako dobrý příklad na osmičkovou soustavu, navíc tam nikde nemáš napsané to, proč je to číslo v osmičkové soustavě (že za to může ta nula). ještě ti tam chybí binární soustava 0b10011101. A dále bych viděl ty "pefixy" 0, 0b a 0X barevně označit, aby bylo vidět, že až tak moc k tomu číslu nepatří, že je to jen označení a to samotné číslo je až za tím. Jako hezké číslo pro ilustraci se mi jeví třeba 47.
47       - 47 in dec
0b101111 - 47 in bin
057      - 47 in oct
0x2F     - 47 in hex

ale speciální funkci na to určenou – var_dump.
var_dump také není funkce ale stejně jako isset nebo empty klíčové slovo

S prázdnými/neinicializovanými proměnnými souvisí také klíčové slova (jazykové konstrukce) isset, empty a unset. Pomocí prvních dvou klíčových slov zjistíte, jestli je proměnná prázdná, či zda vůbec existuje.
Pořadí popisu klíčových slov v druhé větě neodpovídá pořadí, v jakém jsou uvedeny ve větě první.
Navíc empty je potřeba popsat jako "funkci" ověřující prázdnou nebo nulovou proměnnou. tyto hodnoty "", 0, 0.0, "0", NULL, FALSE, array(), var $foo jsou pro empty true.

Do unsetu bych dal jen jednu proměnnou.

Tento jev se nazývá tzv. přetypování
S tím bych až tak nesouhlasil. Prostě proměnná změní hodnotu a důsledkem toho se změní i typ ale to proto, že PHP je dynamicky typovaný jazyk a datový typ se váže k hodnotě proměnné. Přetypování je naproti tomu proces, kdy se "násilně" změní typ proměnné, ovšem hodnota zůstává stejná. Podle mě, je to slyšet už z názvu, jelikož pře vyjadřuje změnu a typování popisuje čeho se ta změna týká. Mluví se tedy jen o změně typu a ne obsahu.

řada častých chyb, které zejména začátečníci často uplatňují ve svém kódu.
Chyba se neuplatňují, chyby se dělají.

echo $$novaPromenna;
A chudáci začátečníci se vlastně nedozvědí, co se stane. Ano, mohou si to vyzkoušet, ale není přeci problém to do textu napsat. Pokud já čtu nějaký článek, čtu ho celý a když dojdu nakonec, pak ty příklady teprve zkouším místo toho, abych neustále čtení přerušoval.
Jan Tvrdík
Profil
Again:
Nevidím nic špatného na "zápisu"
Já ano. Jedná se o tebou vymyšlené spojení, které se rozhodně běžně nepoužívá. Navíc když už se používá, tak v jiném významu. Já si pod spojením „zápis proměnné“ představím, jak zapsat řetězec „$foo“. Ty tam navíc mícháš rovná se a výraz, což nemá nic společného s tím, jak v PHP zapsat proměnnou. Něco zcela jiného je pak „zápis do proměnnné“.

protože je součástí syntaxe u PHP
Ano

pokud ho neuvedeme způsobí error
To je irelevantní. V další verzi PHP se tak třeba budou inicializovat konstanty.

Tak určitě by ho mělo zajímat, že nemůže na začátku názvu napsat číslo
Ano.

nejsou povolené některé znaky
Ano, ale bytové rozsahy jsou zbytečné. Běžný člověk nenosí v hlavně tabulky kódování a idea, že si začátečník bude provádět hexdumpy zdrojových kódu a kontrolovat, zda jsou názvy proměnných tvořené platnými sekvencemi bytů je směšná. To dělám akorát já, když se neshodnu s Jokerem.

Mě právě přijde lepší mít proměnné z jednoho oboru
Souhlasím. Problém je, že ty názvy proměnných jsou špatné. Reálně bude nejspíš chyba mít takto pojmenované proměnné, protože buď budeš pracovat v kontextu pouze češtiny a pak budou mít proměnné názvy $prumer a $znamka nebo budeš pracovat s více předměty a pak použiješ pole. Jsem si vědom, že vymyslet dobré příklady je těžké, sám jsem psal, že na to moc nemám talent. Nicméně dobře vymyšlené příklady extrémně pomáhají pochopit probíranou látku.

Celé to spadá do podnadpisu "Zápis a výpis proměnných",
To vím, ale chápu, proč se domníváš, že je dobré ty dvě samostatné části článku dát pod jeden společný nadpis místo pod dva samostatné.

Já přece nebudu vysvětlovat, jak se rozebírá číslo a převádí se na dvojkovou/šestnáctkovou/osmičkovou soustavu.
Souhlasím, to tam skutečně nepatří.

Kdo tyto soustavy zná, tak určitě zmíněné příklady pochopí.
Zdaleka to není tak jasné, jak se ti zdá. Typicky tu 0 přehlídne každý snadno. A i když ji uvidí, že nebude chápat logickou souvislost (ona tam taky žádná není, prostě někdo kdysi rozhodl, že tak se to bude chovat). Ani šestnáctková soustava ale není jasné. Proč zrovna 0x? Co asi dělá 1x nebo 2x?

Tohle jsou dle mého názoru pro začátečníka malichernosti
Tak tohle zrovna není malichernost, vzhledem k tomu, že se to chová úplně jinak a tobě ten příklad funguje jenom díky shodě okolností. Začátečník velmi snadno narazí na situaci, kdy mu to nebude fungovat. Osobně bych to vůbec v základním kurzu neuváděl. Reálně se to moc často nepoužívá. Zmínil bych to až v kapitole u řetězců, kde stejně bude muset být pojednání o tom, že PHP pracuje s řetězci jako s polem bytů místo znaků.

isset určuje, zda proměnná existuje
A to právě není pravda. Abys zjistil, zda proměnná existuje, musíš se podívat do pole, které vrací funkce get_defined_vars. Funkce isset totiž vrátí false i v případě, že proměnná existuje, ale její hodnota je NULL, přitom ale není vhodná na testování, zda proměnná NULL obsahuje nebo ne. Na to je lepší provést exaktní porovnání s NULL, aby se odlišil případ, kdy proměnná nebude existovat.
Again
Profil
Keeehi:
navíc tam nikde nemáš napsané to, proč je to číslo v osmičkové soustavě (že za to může ta nula)
Tohle už někdo zmiňoval, pracuje se na doplnění. Ten příklad se 47 je povedený, zkusím ho tam vměstnat.

var_dump také není funkce ale stejně jako isset nebo empty klíčové slovo
var_dump je funkce, i když není přímo typická - This function displays structured information about one or more expressions that includes its type and value.

Do unsetu bych dal jen jednu proměnnou.
Já jsem dal dvě záměrně, aby bylo jasné, že lze najednou zrušit více proměnných.

Jan Tvrdík:
Já ano. Jedná se o tebou vymyšlené spojení
Kupodivu jsem to spojení sám nevymyslel, ale někde jsem ho vyčetl. Zkusím ho tedy nahradit něčím rozumnějším ...

To je irelevantní. V další verzi PHP se tak třeba budou inicializovat konstanty.
V rámci další verze je to klidně možné, ale v této nikoliv. Abychom se ale dohodli - zkusím napsat, že $ je součástí syntaxe u PHP a je to.

Problém je, že ty názvy proměnných jsou špatné.
Je pravdou, že by to chtělo nějaké reálnější příklady, nejlépe přímo z praxe, zkusím něco vymyslet. Kdyby měl někdo nějaké návrhy tak sem s nimi.

Zmínil bych to až v kapitole u řetězců
Dobře, minulé to tam nebylo, teď ano, tak to znovu vyhoďme a kdo se ozve, že to tam chce dostane za uši :)

Funkce isset totiž vrátí false i v případě, že proměnná existuje, ale její hodnota je NULL
O tomhle vím, stejně jako, že empty považuje proměnnou s hodnotou 0 za prázdnou. Jak to ale vysvětlit nějak jednoduše začátečníkovi?
Keeehi
Profil
Again:
var_dump je funkce
Omlouvám se, nějak jsem se v tom seznamu jazykových konstruktů zamotal a překoukl.

Já jsem dal dvě záměrně, aby bylo jasné, že lze najednou zrušit více proměnných.
Každý dokáže napsat 2x unset po sobě, ale někdo by mohl mít problémy smazat jen jednu proměnnou, když ty mažeš zároveň dvě.

Jak to ale vysvětlit nějak jednoduše začátečníkovi?
Co třeba něco ve stylu jednoduchého vysvětlení s poznámkou, že ve "vyjímečných" případech se to chová jinak. (momentálně mě nenapadá hezká formulace) Začátečník to stejně nebude muset řešit. Osobně jsem ještě takový stav rozlišovat nemusel. Myslím, že jsem to někdy zkoumal, jak se to chová, ale abych to byl nucen použít, to ne.
Again
Profil
Omlouvám se za prodlevu, bohužel jsem neměl v poslední době moc času, teď už by to mělo být lepší. Začal jsem psát kapitolu o operátorech a přidávám další verzi proměnných. Překopíroval jsem obsah do Google documents, snad vám to bude vyhovovat více.

https://docs.google.com/document/d/1LwfBPMPtvEsWm80sh1fYvHIEb_83zkcZaHpl4O4e59E/edit
Joker
Profil
Again:
Dobré.

Poznámky/připomínky:
- Kód by měl být včetně PHP značek, <?php ... ?>

- V aktuálním stavu je var_dump první použití funkce s argumentem, možná by někde mělo být vysvětleno volání funkce s argumentem.
Uvažoval jsem o tom v kapitole o základech syntaxe, konkrétně jsem to chtěl ukázat na date, ale tam je to lehce komplikované způsobem zadání argumentu a obrovským množstvím různých variant. Mám ještě argumenty doplnit do základů syntaxe?

- Doporučil bych var_dump dát někam víc na začátek a podob v situacích kde se demonstruje i datový typ proměnné ho používat místo echo, například v ukázce převodu int na float.

- Drobnost, „předchozí kapitola“ je kapitola o chybových hláškách a ne o základech syntaxe.

- U „nelibá poznámka“ bych škrtl „nelibá“. A to z toho důvodu, aby bylo zřejmé, že poznámka není jen tak náhodně zvolené slovo, ale jde o termín poznámka jako úroveň chybového hlášení. Jinak někde se tam používá poznámka a jinde notice, asi nejlepší by bylo psát „poznámka (notice)“, což zároveň zdůrazní, že jde o poznámku ve významu úrovně chyby.

- Možná by neškodilo někde jen na okraj poznamenat, že jiné datové typy než řetězce se nedávají do uvozovek. Je to zmíněné v kapitole o základech syntaxe, takže to není přímo nezbytné, ale začátečníci často dávají do uvozovek třeba i čísla apod.

- Tip, rozdíly mezi řetězci v uvozovkách a apostrofech se zabývá kapitola o základech syntaxe, možno odkázat (tím neříkám to z kapitoly o proměnných vyhodit, podle mě je dobře, že to je i tam)

- Jen otázka, odkaz „dynamicky typovaný jazyk“ má vést na co?

- Jelikož to „od verze 5.4“ se vztahuje jen ke dvojkovému zápisu, dal bych ho na konec. Zároveň, jelikož píšeme učebnici pro PHP 5.3 bych víc zdůraznil (i u příkazu v kódu), že to funguje až od PHP 5.4. A možná i zmínil chybovou hlášku.

- U stejného tématu by se hodilo zmínit, že má-li mít číslo třeba úvodní nuly z prezentačních důvodů, je třeba ho uložit jako řetězec. A mohlo být i zmíněno, že s číselným datovým typem se ukládají čísla, se kterými se mají dělat nějaké matematické operace. Pak jsou údaje, jako například telefonní číslo, číslo účtu nebo PSČ, které jsou sice tvořené číslicemi, ale matematické operace s nimi obvykle nedávají smysl a naopak je často potřeba se k nim chovat jako k řetězcům (například PSČ mít s mezerou "123 45", číslo účtu s úvodními nulami "0000123456" a podobně). Pro takové údaje, byť jsou to svým způsobem čísla, je správný datový typ řetězec (string).

- Místo informace, že se přetypování nebude rozebírat, bych tam prostě dal, že bude blíž probráno v následující kapitole.

- U otázky číslo 4, proč není správně i odpověď a)?
Amunak
Profil
Joker:
Vzhledem k tomu jak častá záležitost argumenty jsou bys je v základech syntaxe asi měl zmínit. Alespoň až si pak čtenář bude dělat vlastní funkci, bude alespoň tušit, že argument asi nějak ovlivňuje chování funkce.
Again
Profil
Joker:
Mám ještě argumenty doplnit do základů syntaxe?
Možná by to bylo vhodné, ať má začátečník přehled, s čím vším se může v následujících kapitolách setkat. Akorát by to chtělo vymyslet nějaký jednoduchý příklad, nejlépe s jedním argumentem, napadají mě třeba jednoduché funkce pro práci s textem např: strlen. Ostatní a složitější bych nechal do kapitoly funkce.

Jen otázka, odkaz „dynamicky typovaný jazyk“ má vést na co?
Předpokládám něco ve smyslu Wikipedie, kde bude nějak jednoduše vysvětlená typová kontrola a tedy rozdíl mezi dynamickým a statickým typovaným jazykem.

- U otázky číslo 4, proč není správně i odpověď a)?
To jsem asi omylem přehlédl, opravím.

Ostatní věci jsem doplnil do předchozího dokumentu: https://docs.google.com/document/d/1LwfBPMPtvEsWm80sh1fYvHIEb_83zkcZaHpl4O4e59E/edit
Alphard
Profil
nazevPromenne nemusí být pro začátečníka přehlednější než nazev_promenne, možná zmínit i to, že existují konvence, abych všichni tvořili podobně a vzájemně si rozuměli :-)

Na ten počet znaků u var_dump pozor
var_dump('ščřžýá');
string(12) "ščřžýá" 

U echo PHP_INT_MAX záměrně nutíme čtenáře si to zkusit? Možná bych tam uvedl hodnotu (aspoň na 32 bitovém systému), ať mají aspoň tušení, kolik to je.
Místo konvertuje bych možná použil přetypuje, ať trochu zdůrazníme pojem typ.

Pojmenování float je dost nepříjemné. PHP manuál to moc nerozlišuje, prostě popisuje rozsah Floating point numbers a nadále mluví o float, ale výstupem var_dump (na mé verzi) je double(2.87) resp. double(2.8124624686546E+15). Takže asi zůstat u pojmenování float, jen zmiňuji možnou kolizi pojmů.

Formulace "nejsou příiš přesná" se mi opravdu nelíbí.

Příklad u řetězce má chybně pojmenované proměnné. Vytváříš $priklad, používáš $text.

Je rozumné o unset() atd. mluvit jako o klíčových slovech? Zůstal bych u jazykového konstruktu. Manuál samozřejmě uvádí Because this is a language construct and not a function, it cannot be called using variable functions.

Vzhledem k pořadí isset() a empty() by to úvodní vysvětlení mělo prvně zmiňovat, jestli proměnná existuje a až poté, jestli je prázdná.

$6cislo = 6; skutečně generuej fatal error? Čekal bych parse error.

Joker:
asi nejlepší by bylo psát ‚poznámka (notice)‘
Jsem přesně opačného názoru, počeštěný pojem poznámka jsem snad nikde ještě neviděl, hned bych uvedl termín notice.

Dobrý příklad, proč čísla ukládat skutečně jako čísla, je řazení (protože při matematických operacích se implicitně přetypují), jen nevím, jestli na to není moc brzo.
Again
Profil
Alphard:
možná zmínit i to, že existují konvence, abych všichni tvořili podobně
O konvencích se píše nahoře, takže je na začátečníkovi, jestli se jich bude držet nebo ne.

Na ten počet znaků u var_dump pozor
Napsal jsem menší upozornění a odkázal na PHP manuál, myslím že to bude stačit.

Pojmenování float je dost nepříjemné
U datového typu float jsem zmínil také double, takže by to snad nikoho nemělo zmást.

Ostatní věci jsem opravil.
Joker
Profil
Ještě jedna poznámka, bylo by možná fajn někde zmínit, že pro zápis čísel v šestnáctkové soustavě se používají symboly 0-9 a A-F.
První zmínka o šestnáctkové soustavě je tady u proměnných, ale ta informace je víc užitečná u konverze řetězce na číslo v kapitole o přetypování. Zatím to mám tam.
Dál bych šestnáctkovou soustavu neřešil, jen čistě pro informaci, že za určitých okolností se i písmena A-F mohou převést na číslo.
Amunak
Profil
Joker:
Nejsem si jistý, jestli je zrovna tohle podstatně zmiňovat v základním kurzu - ostatně proč to vlastně je u proměnných? Podle mě kdo s šesnáctkovou soustavou potřebuje pracovat, tak si o ní něco přečte a funkce na převod si najde. A ostatní to snad ani nepotřebují, nebo ano? Maximálně jí zmínit u datového typu int, pokud se tak už nestalo. Ale nijak bych to v základním kurzu nerozepisoval.
Joker
Profil
Amunak:
To už jsme rozebírali výše. Smysl není učit čtenáře ty jiné soustavy, ale upozornit na jejich existenci a na pro začátečníka neintuitivní výsledky, které mohou některé zápisy produkovat.
Například:
$cena = 052;
echo $cena." Kč"; // vypíše 42 Kč

Nicméně mě napadá, že informace z [#11] stejně asi nebudou potřeba. I když to v kapitole o přetypování už mám napsané, neustále zapomínám, že přetypování řetězce na číslo funguje jen pro desítkovou soustavu.
Jan Tvrdík
Profil
Again, Joker:
Rád bych viděl tuto část zařazenou u zbytku. V jakém je to stavu?
Again
Profil
Jan Tvrdík:
Přepisuji ji do BB kódu, pokusím se to co nejdříve dodělat.
Again
Profil
Přepsaná kapitola: https://docs.google.com/document/d/16qTMdkUdf6333gJSSEhlOFFEDD7E1ZK3qTFDcIpPm2g/edit
Doplňující obrázek: https://docs.google.com/open?id=0B2lryZYJa3mOUHVzWnM2aWctcGM

Odkaz na vedlejší kapitolu jsem ještě nevyplňoval, protože jsem si nebyl jistý URL adresou (absolutní nemá cenu vyplňovat). Potom je třeba doplnit ještě kotvy u jednotlivých kapitol a ve zdrojovém kódu označit prefixy červeně (JUSH jsem nijak nezkoumal, tak jen doufám, že je to možné).

Jinak smím se zeptat, jak to vypadá s redakčním systémem? Bylo by vhodnější to vkládat přímo tam, než to tahat tady.
Jan Tvrdík
Profil
Again:
Jinak smím se zeptat, jak to vypadá s redakčním systémem?
Redakční systém je z mého pohledu v podstatě hotov. Čekám na nějakou reakci od Jokera. Můžu ho zprovoznit u sebe, ale nechci to zbytečně tříštit (něco by pak bylo tady, něco u Jokera na webu a něco u mě).
Joker
Profil
Again:
Přepsaná kapitola
Drobná poznámka k nadpisům, tu šipku není třeba tam dávat, tu tam dogeneruje RS automaticky (ve finále to bude mít jinou podobu, už jsem zjistil, že ten symbol není k dispozici všude).
Jinak pro zajímavost, ta šipka je odkaz na ten daný nadpis v rámci stránky. Ale jak jsem psal, možná to bude nakonec udělané jinak. Každopádně je to záležitost RS.
Taky jsem přešel na konvenci k nadpisům psát i úrovně ([h1-3], samotné [h] je totéž jako [h3]) a nastavovat jim idčka (zápis je [hx#id], s názvy idček se nemazlím a používám n1, n2, …), protože mám tušení, že možnost odkázat na konkrétní část článku přijde velmi vhod.

Kdyžtak to už doupravím sám, navíc mě teď napadá, že na DJPW fungují nadpisy jen moderátorům? To mě předtím nenapadlo.

Jan Tvrdík:
Čekám na nějakou reakci od Jokera.
Jojo, omlouvám se, na Silvestra a Nový rok jsem měl jiný program :-) Doufám, že zítra se na to vrhnu.
Joker
Profil
Moc se omlouvám Againovi, ale za ten rok jsem zapomněl, že tahle jediná kapitola ZK z těch které si přidělil někdo jiný než já došla do víceméně dokončeného stavu.
Resp. jsem vzal jeden ze starších odkazů a usoudil, že to skončilo na nějakém polotovaru.

Takže jsem napsal jinou (je veřejná, ale zatím není v menu, protože to je pořád ještě nepřipomínkovaná „betaverze“).
Je pojatá trochu jiným způsobem; Asi největší rozdíl je, že se tam nemluví o třech vlastnostech proměnné, ale dvou, přičemž datový typ se bere jako vlastnost hodnoty.

Má někdo komentáře?
Teda krom toho, že bylo celkem zbytečné to psát, když už byla jedna verze víceméně hotová… Jasně, no.
Alphard
Profil
Jen v rychlosti (nečetl jsem celou původní diskusi a články také v rychlosti), trochu více se mi líbí verze od [#16] Again protože je podrobnější, ale řešilo se tady, jestli je to potřeba. V té tvé bych aspoň ještě zdůraznil, že výpočty s desetinnými čísly nemusí vždy dopadnout dle očekávní, tohle se do jiné kapitoly asi nevejde.

Again tam má možná překlep, nevím, jak to myslel.
Tento jev se nazývá tzv. přetypování, které se bude podrobně probírat v další kapitole. Důležitý je zde zejména fakt, že všechny proměnné mohou (z)měnit svou hodnotu.
Spíše typ, ne?

Alphard:
nazevPromenne nemusí být pro začátečníka přehlednější než nazev_promenne
Musí být přehlednější pro každého :-)
Tori
Profil
Alphard:
Again tam má možná překlep, nevím, jak to myslel.
Tohle mi připadá psané z pohledu člověka, který už ovládá nějaký staticky typovaný jazyk. Ale když jsem viděla jen vaši citaci, tak mě jako první napadlo tohle:
$var = 'asdfg';
settype($var, 'int');
, kde se ta hodnota opravdu změní. To, co Again ukazuje, bych nazvala spíš předefinováním proměnné (čímž se jako vedlejší efekt taky změní její typ), než přetypováním.
Joker
Profil
Alphard:
V té tvé bych aspoň ještě zdůraznil, že výpočty s desetinnými čísly nemusí vždy dopadnout dle očekávní, tohle se do jiné kapitoly asi nevejde.
Přesnost reálných čísel se docela dost rozebírá v další kapitole o přetypování, ale tohle by tam určitě být mělo.
(V kapitole o přetypování to naopak bude chtít omezit a odkazovat na předchozí kapitolu.)
Joker
Profil
Doplnil jsem kapitolku o přesnosti reálných čísel.

Alphard, Tori:
Připadá mi možná lepší to postavit na představě, že datový typ má hodnota a ne proměnná.
I když by se asi dalo argumentovat, že vzhledem k fungování PHP uvnitř to není úplně přesné (jelikož PHP je udělané ve staticky typovém Céčku, hodnota proměnné má položky pro všechny datové typy a na proměnné se drží, která z nich je aktuální).
Amunak
Profil
Joker:
> hodnota proměnné má položky pro všechny datové typy a na proměnné se drží, která z nich je aktuální

Trochu odbočka od tématu, ale tohle mě zaujalo - znamená to tedy, ze po vytvoření libovolné (třeba i prázdné) proměnné se v paměti vyhradí místo pro float, int, pointer na string apod.?
jo a pořád mi na mobilu nejde citovat :-(
Alphard
Profil
Myslím, že se používá union struktura www.php.net/manual/en/internals2.ze1.zendapi.php#internals2.ze1.zendapi.example.zval-typedef. Můžeme to doplnit do základního kurzu, C se vždycky hodí :-)
Joker
Profil
Amunak:
znamená to tedy, ze po vytvoření libovolné (třeba i prázdné) proměnné se v paměti vyhradí místo pro float, int, pointer na string apod.?
Jak píše Alphard: Použije se Céčkový union, takže se vyhrazuje jen tolik paměti, kolik potřebuje největší položka (což asi bude buď double pro typ float, nebo dva pointery pro objekt).
Mimochodem, když o tom přemýšlím, ten můj popis vlastně není nepřesný, naopak to je bližší reálné implementaci, než ten původní :-)
Interně v PHP je „proměnná“ záznam v nějaké tabulce symbolů, kde pod názvem proměnné je odkaz na příslušný zval. A v zvalu je uložená samotná hodnota a datový typ (a ještě pár věcí, ale ne název).

Alphard:
Můžeme to doplnit do základního kurzu, C se vždycky hodí :-)
Zrovna tohle je právě téma, které chci aby tam nebylo :-)


Jinak jsem tu kapitolu rozšířil ještě o vysvětlení INF a NAN.
_es
Profil
Patrí časť „Datové typy“ do kapitoly „Proměnné“? „Přetypování“ mi logicky nesedí ako samostatná hlavná kapitola, asi by mala byť samostatná kapitola „Datové typy“ a „pretypovanie“ v nej. Dátový typ predsa nemusí nutne nejako súvisieť s nejakou premennou. V dátových typoch by mohlo byť spomenuté, že dátový typ „Float“ je vlastne podmnožinou racionálnych čísel (ktorá je podmnožinou reálnych čísel) a to ešte len podmnožinou takých čísel v tvare zlomku p/q, kde p a q sú celé čísla a q je celočíselná mocnina 2.
Joker
Profil
_es:
Patrí časť ‚Datové typy‘ do kapitoly ‚Proměnné‘?
Toť otázka, no.
Potíž je v návaznosti kapitol. Když proměnné mají název a datový typ, je potřeba vysvětlit datové typy současně s proměnnými nebo dříve. K výkladu přetypování se ale zase hodí už mít vysvětlené proměnné.

Možná by datové typy mohly být zvlášť jako první, ale zase se mi nechce teď předělávat číslování kapitol.

V dátových typoch by mohlo byť spomenuté, že dátový typ ‚Float‘ je vlastne podmnožinou racionálnych čísel (ktorá je podmnožinou reálnych čísel) a to ešte len podmnožinou takých v tvare zlomku p/q, kde p a q sú celé čísla a q je celočíselná mocnina 2.
To mi přijde moc odborné.
Podle mě i profesionální programátor bez tak detailní informace přežije, natož začátečník.
Když si představím sebe v roli čtenáře, nebyl bych si jistý, jakou informaci si z takového výroku odnést.
_es
Profil
Joker:
Když proměnné mají název a datový typ
To sa mi nejako nezdá. Dátový typ má v PHP hodnota premennej, nie samotná premenná.

K výkladu přetypování se ale zase hodí už mít vysvětlené proměnné.
„Pretypovanie“ nesúvisí s premennou, ale tiež len až s nejakou konkrétnou hodnotou. „Pretypováva“ sa nejaká hodnota, nie premenná.

To mi přijde moc odborné.
Je to učivo zo základnej či strednej školy. Mätúce mi v texte prídu „desatinné“ čísla - „desatinný“ je len zápis, nie hodnota. Z toho krátkeho textu, možno vyzerajúceho „odbornejšie“, je ľahko pochopiteľné, prečo nejde presne uložiť napríklad 0,1.
Jan Tvrdík
Profil
_es:
‚Pretypováva‘ sa nejaká hodnota, nie premenná
V PHP jde přetypovat i přímo proměnná, viz settype.
« 1 2 3 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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