.[ ČeskéHry.cz ].
Definice funkcí v objektu. (PHP)

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Web Development
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 3. červen 2008, 13:40:41    Předmět: Definice funkcí v objektu. (PHP) Odpovědět s citátem

Dobrý den. Jde v php definovat funkce vně objektu, jako to jde v C++?

kód:

class Objekt
{
public:
void Test();
};

void Objekt::Test() {
cout << "Neco";
}


Mám rozsáhlý objekt a potřebuji ho trošku rozdělit, protože se vše již stalo nepřehledným. Děkuji za případné rady.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 3. červen 2008, 14:07:53    Předmět: Odpovědět s citátem

Nechce se mi zakládat nové vlákno tak přiložím i druhý dotaz. Dá se z funkcí elegantně přistupovat ke "globálním" proměnným?

Např. toto nefunguje:
kód:

$test = "test";
function Neco() {
echo $test;
}


Vytvářet vše jako globální proměnné se mi zas nechce...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
raulis



Založen: 01. 08. 2007
Příspěvky: 7
Bydliště: Jičín

PříspěvekZaslal: 3. červen 2008, 14:22:53    Předmět: Odpovědět s citátem

Spravne by to melo byt tahle:
kód:
$test = "test";
function Neco() {
global $test;
echo $test;
}

_________________
Za to málo, co znám, vděčím své hlouposti.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 3. červen 2008, 17:56:06    Předmět: Odpovědět s citátem

Ted sem cet v knizce o PHP 5 ze to co psal raulis neni dobry pouzivat misto toho to napis takhle:
kód:

$test = "test";
function Neco() {
$GLOBALS['test'];
echo $test;
}

_________________
Twitter
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Yossarian



Založen: 28. 07. 2007
Příspěvky: 274
Bydliště: Šalingrad

PříspěvekZaslal: 3. červen 2008, 18:29:27    Předmět: Odpovědět s citátem

uiii napsal:
Ted sem cet v knizce o PHP 5 ze to co psal raulis neni dobry pouzivat misto toho to napis takhle:
kód:

$test = "test";
function Neco() {
$GLOBALS['test'];
echo $test;
}

todle je pekna picovina, co to je za knizku?
kód:

$test = "test";
function Neco() {
echo $GLOBALS['test'];
}

kdyz uz. nicmene myslenka pravdepodobne byla nasledujici:

kód:

$test = "test";
function Neco($t) {
echo $t;
}

Neco($test);
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 3. červen 2008, 18:57:47    Předmět: Odpovědět s citátem

ad all: O těchto způsobech vím, nicméně se mi nechce redefinovat tucty proměnných, které se ve funkci vyskytují. O to méně klasicky předáváním parametrů.

uiii: Trošku divný, validní zápis je
kód:

GLOBALS['test'] = "test";

function Test() {
echo $test;
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 3. červen 2008, 18:58:36    Předmět: Odpovědět s citátem

Yossarian napsal:

kód:

$test = "test";
function Neco() {
echo $GLOBALS['test'];
}

[/code]

Nemůžeš definovat proměnnou a pak z ní udělat globální Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JohnyDog



Založen: 17. 08. 2007
Příspěvky: 66

PříspěvekZaslal: 3. červen 2008, 19:19:38    Předmět: Odpovědět s citátem

survik1 napsal:
Nemůžeš definovat proměnnou a pak z ní udělat globální Smile

Ta promenna uz globalni je, tim ze ji definujes globalne mimo funkci/tridu. Jinak globalnim promennym by ses mel v OO jazycich pokud mozno vyhnout.

A kdyz uz jsme u toho, oprav si terminologii, nedefinujes objekt, ale tridu, objekty jsou az instance te tridy.
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 3. červen 2008, 19:23:02    Předmět: Odpovědět s citátem

JohnyDog napsal:
A kdyz uz jsme u toho, oprav si terminologii, nedefinujes objekt, ale tridu, objekty jsou az instance te tridy.


mno neni vzdy je to pravda - treba Java ma pojmy trida a objekt temer splynute - podobne se na to diva treba i LISP - ta teorie neni uplne zrejma - ale tak to je OT Smile

survik1 napsal:
ad all: O těchto způsobech vím, nicméně se mi nechce redefinovat tucty proměnných, které se ve funkci vyskytují. O to méně klasicky předáváním parametrů.


aneb chces delat vsechno proto abys to nedelal spravne - v OO paradigmatu by obecne mela stacit jedna globalni promenna a ani vlastne to ne - vse bys mel predavat pomoci parametru
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 4. červen 2008, 17:32:49    Předmět: Odpovědět s citátem

Jo vsem se omlouvam, az ted sem si vsim ze to co sem napsal byla pekna kravina.
_________________
Twitter
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 4. červen 2008, 18:36:54    Předmět: Odpovědět s citátem

Kdyby jste raději nechali moji terminologii a poradili mi s tím objektem Laughing
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 4. červen 2008, 22:34:35    Předmět: Odpovědět s citátem

neda - C++ je vicemene jediny jazyk ktery to dovoluje - co z praxe znam - jinak je to tak ze se to definuje v ramci tridy primo
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 5. červen 2008, 14:23:28    Předmět: Odpovědět s citátem

rezna napsal:
neda - C++ je vicemene jediny jazyk ktery to dovoluje - co z praxe znam - jinak je to tak ze se to definuje v ramci tridy primo


Nj, OOP v PHP je dosti v plenkách. Díky.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 5. červen 2008, 14:30:14    Předmět: Odpovědět s citátem

survik1 napsal:
rezna napsal:
neda - C++ je vicemene jediny jazyk ktery to dovoluje - co z praxe znam - jinak je to tak ze se to definuje v ramci tridy primo


Nj, OOP v PHP je dosti v plenkách. Díky.


whe? - co ma spolecneho to ze C++ je snad jediny jazyk kde lze telo metody definovat bokem v jinem souboru (alespon z tech beznych) a to ze v PHP je OOP v plenkach?

to povazujes nemoznost zadefinovat telo metody mimo definici tridy jako zaostalost OOP? -> vis v tom pripade co to OOP vubec je?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 5. červen 2008, 14:54:52    Předmět: Odpovědět s citátem

[quote="rezna"][quote="survik1"]
rezna napsal:

whe? - co ma spolecneho to ze C++ je snad jediny jazyk kde lze telo metody definovat bokem v jinem souboru (alespon z tech beznych) a to ze v PHP je OOP v plenkach?

to povazujes nemoznost zadefinovat telo metody mimo definici tridy jako zaostalost OOP? -> vis v tom pripade co to OOP vubec je?


Dobře, unáhlil jsem se, beru zpět. O OOP vím jen základy, ještě z dob, kdy jsem se věnoval C++. Jestli mi to stačí k pochopení principu, pak ano, vím.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Web Development Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna