Autor | Zpráva | ||
---|---|---|---|
Joker Profil |
Autor: Joker
Odkaz na aktuální verzi textu: Základní kurz 14: Rozsah platnosti proměnných zveřejněno Odkud se vede diskuse k aktuálnímu stavu textu: Sloučil jsem s kapitolou o superglobálních proměnných. |
||
Jan Tvrdík Profil |
#2 · Zasláno: 21. 12. 2012, 15:06:44
Zase jenom stručně:
• $_REQUEST obsahuje i cookies
|
||
Časová prodleva: 1 měsíc
|
|||
Camo Profil |
#3 · Zasláno: 31. 1. 2013, 18:07:05
Neviem či mi niečo uniklo, ale nevidím tam nijakú zmienku o predávaní premenným do funkcie odkazom. Dokumentácia tento zápis dosť často používa, tak by to asi bolo dobré vysvetliť. A ešte ma napadá jedna vec. Neviem či ide o obor premennej ale príde mi že áno a síce vlastnosť static $x (vo funkciách), ktorá udržiava hodnotu premennej aj po ukončení funkcie. Pri následnom volaní ju človek môže zistiť. Napríklad ako alternatívu k iteráciám(ešte som to nepoužil, tak presne neviem. Objavil som to len nedávno.).
|
||
Jan Tvrdík Profil |
#4 · Zasláno: 31. 1. 2013, 18:45:19
Camo:
„Dokumentácia tento zápis dosť často používa“ Teď mě napadá akorát sort . Neřekl bych, že je to často používaná věc.
|
||
Camo Profil |
#5 · Zasláno: 31. 1. 2013, 19:08:08
Práve funkcie pre prácu s poľom sú pekný príklad a je ich tam dosť, nie len sort. Ale napríklad aj taká preg_match a iné, na ktoré každý určite narazí...
|
||
Joker Profil |
#6 · Zasláno: 31. 1. 2013, 19:08:21
Camo:
Ohledně předávání odkazem jsem opačného názoru, podle mě to začátečník nepoužije prakticky nikdy (a když ho to naučíme, je dost riziko, že to bude používat špatně, podobně jako globální proměnné). Navíc reference jsou trochu složitější problematika, tak nevím, jestli se do toho v základním kurzu pouštět. Statické proměnné mi taky připadají, že do toho vnesou spíš chaos, než aby začátečníkovi byly k něčemu dobré. |
||
Camo Profil |
Joker:
Ide ale aj o to, že na to tak či tak narazia v nejakom kóde. A ide tu snáď o to, aby sa to naučili, nie o to kto má aký názor na ich použitie. Proste sa to používa a každý by to mal chápať. Inak ak to správne chápem, tak aj slovo global vytvára referenciu. PS: Chaos podľa mňa vyvoláva práve to, že niekto niečo podstatné zatají a chudák začiatočník potom nechápe čo sa to deje(vlastná skúsenosť). |
||
abc Profil |
#8 · Zasláno: 31. 1. 2013, 19:32:47
Joker:
Statické proměnné se podle mě dají krásně použít např. pro názvy dnů v týdnu: static $denVTydnu = array( 0 => 'Pondělí', 1 => 'Úterý', //atd. } static $dlouhyDenNaKratky = array( 'po' => 'pondělí', 'út' => 'úterý', //atd. } |
||
Joker Profil |
#9 · Zasláno: 31. 1. 2013, 19:57:08
Camo:
Jde o to kdy se to naučí. Reference s rozsahem platnosti proměnných moc nesouvisejí. abc: Zrovna tohle by měly být spíš globální proměnné než statické někde uvnitř funkce, navíc jelikož dny v týdnu se za běhu skriptu asi měnit nebudou, měly by to být spíš konstanty. |
||
Camo Profil |
#10 · Zasláno: 31. 1. 2013, 20:22:10
Joker:
"Reference s rozsahem platnosti proměnných moc nesouvisejí." No ja myslím, že sa mýliš. To že je to riešené cez referencie je len technická záležitosť, ale ide tam práve o to ako rozšíriť platnosť premennej do oboru funkcie. A veď som to už písal, že aj príkaz global vytvára referencie. Ja medzi tými dvoma nevidím žiadny rozdiel. Mne osobne sa viac páči predávanie odkazom. |
||
Časová prodleva: 1 rok
|
|||
Jcas Profil * |
#11 · Zasláno: 9. 5. 2014, 17:35:43
Teda, tam je tolikrát slovo kontext, že jsem se v tom zamotal a nakonec jsem se musel podívat, co to "České" slovo znamená.
Přidal bych větičku: Kontext, nebo-li souvislost znamená, s jakou částí scriptu $proměnná souvisí. Sedím v práci s 20-ti lidmi a všichni jsme u PC. Slovo kontext, jsem snad neslyšel ani jednou za 10 let co tu dělám. Jedna věta obyčejným Českým jazykem by se mi tam opravdu líbila. ps. Nezlobte se prosím, že jsem Vám řekl svůj názor. <?php function mojeFunkce() { // zde je kontext funkce mojeFunkce $kontext = "Kontext mojeFunkce"; //rozsah platnosti je pouze pro funkci mojeFunkce() echo "<p>$kontext</p>"; } function druhaFunkce() { // zde je kontext funkce druhaFunkce $kontext = "Kontext druhaFunkce"; //rozsah platnosti je pouze pro funkci druhaFunkce() echo "<p>$kontext</p>"; mojeFunkce(); // přechod do jiného kontextu echo "<p>$kontext</p>"; // opět v kontextu druhaFunkce } // hlavní skript $kontext = "Kontext skriptu"; //rozsah platnosti je pouze pro hlavní script. Funkce tuto proměnou nevidí. echo "<p>$kontext</p>"; druhaFunkce(); // přechod do jiného kontextu echo "<p>$kontext</p>"; // opět v kontextu hlavního skriptu ?> <?php function mojeFunkce() { global $kontext; // nastavíme $kontext jako globální proměnnou $kontext = "Kontext mojeFunkce"; //rozsah platnosti je pro celý script echo "<p>$kontext</p>"; } function druhaFunkce() { global $kontext; // nastavíme $kontext jako globální proměnnou $kontext = "Kontext druhaFunkce"; //rozsah platnosti je pro celý script echo "<p>$kontext</p>"; mojeFunkce(); // přechod do jiného kontextu echo "<p>$kontext</p>"; // opět v kontextu druhaFunkce } // hlavní skript $kontext = "Kontext skriptu"; echo "<p>$kontext</p>"; druhaFunkce(); // přechod do jiného kontextu echo "<p>$kontext</p>"; // opět v kontextu hlavního skriptu ?> |
||
Joker Profil |
#12 · Zasláno: 9. 5. 2014, 21:25:51
Jcas:
Zajímavé, mně slovo „kontext“ nijak divné nepřipadá a to bývám na newspeak citlivý.Třeba „vytržené z kontextu“, „zasazené do kontextu“, „v kontextu (něčeho)“ se používá úplně běžně. Ale díky za podnět, zamyslím se nad lepším vysvětlením toho termínu. „Kontext, nebo-li souvislost znamená, s jakou částí scriptu $proměnná souvisí.“ „Souvislost“ není to správné slovo, z téhle věty bych asi nepochopil, o co jde. |
||
Jan Tvrdík Profil |
#13 · Zasláno: 10. 5. 2014, 05:02:52
Wiki slovník definuje kontext jako
1) text, v němž se vyskytuje určité slovo a který určuje význam tohoto slova nebo umožňuje upřesnit jeho význam 2) okolnosti, které určují, upřesňují či objasňují význam události Nesouhlasím s tím, že je slovo kontext použito v tom článku jako ekvivalent anglického scope. Podle mě scope jde přeložit akorát opisem jako „rozsah platnosti proměnných“. Kontext má obecnější vyznám, volně bych ho přeložil jako „prostředí, ve kterém se určitá věc nachází“. Z toho taky plyne, že proměnná nemá jeden jasně daný kontext. Kontextem jedné proměnné může být zároveň funkce, soubor i projekt. To, že se proměnná nachází v nějaké funkci přece neznamená, že se nenachází zároveň i v nějakém souboru. Pak se taky kontext používá i konkrétněji, viz citace z wikipedie: When discussing scope, there are three basic concepts: scope, extent, and context. "Scope" and "context" in particular are frequently confused: scope is a property of an identifier, and is fixed, while context is a property of a program, which varies by position. More precisely, context is a property of a position in the program, either a position in the source code (lexical context) or a point during run time (execution context, runtime context, or calling context). Execution context consists of lexical context (at the current execution point) plus additional runtime state such as the call stack.[e] Thus, when the execution point of a program is in a variable name's scope, the "variable (name) is in context" (meaning "in the context at this point"), and when the execution point "exits a variable (name)'s scope", such as by returning from a function, "the variable (name) goes out of context".[f] Narrowly speaking, during execution a program enters and exits various scopes, and at a point in execution identifiers are "in context" or "not in context", hence identifiers "come into context" or "go out of context" as the program enters or exits the scope – however in practice usage is much looser. |
||
Časová prodleva: 4 dny
|
|||
Joker Profil |
#14 · Zasláno: 14. 5. 2014, 08:19:35
Jan Tvrdík:
„Nesouhlasím s tím, že je slovo kontext použito v tom článku jako ekvivalent anglického scope.“ Já si ho nevymyslel, používá se i jinde. Dobře, tak jaký jiný termín by se měl použít? „Podle mě scope jde přeložit akorát opisem jako ‚rozsah platnosti proměnných‘.“ No právě. |
||
Jan Tvrdík Profil |
#15 · Zasláno: 14. 5. 2014, 09:00:33
Joker:
„Já si ho nevymyslel, používá se i jinde.“ Kde jinde? Nevidím problém všude používat opis „rozsah platnosti proměnných“ případně „oblast platnosti proměnných“, je to pro českého čtenáře mnohem výstižnější a jasnější než anglické scope i kontext, které má jiný význam. |
||
Časová prodleva: 9 let
|
0