Autor Zpráva
Lapiw
Profil *
Prosim Vas, vie mi niekto vysvetlit aky je rozdiel medzi statickou premennou a konstatou v class OOP?

Dakujem.
bukaj
Profil
Lapiw
Statická proměnná je taková proměnná, která náleží třídě, lze ji změnit a nastavovat u ní viditelnost (public, protected, private), je uvozena symbolem $, jak je zvykem u proměnných v PHP. Třídní konstanta je neměnná hodnota (tj. jak je jednou ddefinována, nelze ji změnit), která musí být známá již při definici (nelze tedy mít jako hodnotu nějaký matematický výraz, volání fce atp.), neuvozuje se symbolem $ a, pokud vím, nepoužívá se u ní viditelnost (protože stejně nejde změnit). Podstatný rozdíl tedy je, že u statické proměnné, jak již plyne z názvu, jde změnit její hodnotu, zatímco u konstanty to nelze (což taky plyne z názvu -- konstatní = neměnný).
Lapiw
Profil *
ok a tak potom nechapem aky je rozdiel medzi

public static $var

a

public $var

Vie te mi to vysvetlit?
DoubleThink
Profil *
statická vlastnost nebo metoda jde volat staticky - to znamená ne prostřednictvím instance třídy ale přímo v jejím kontextu.
suky
Profil
Lapiw
Mozna na prvni pohled jednodussi vysvetleni.
(Nic proti tvemu, ale kazdy nekdy zacinal...)
Staticke vlastnosti nebo metody jdou volat primo v tride, tzn. nemusi se vytvaret instance.

<?php

class Trida {

	//vlastnosti
	public static $statickaVlastnost = 'text';
	public $vlastnost = 'text';
	
	//konstruktor pro uplnost
	public function __construct() {}
	
	//metody
	public static function statickaMetoda() {
	return 1;
	}
	public function metoda() {
	return 1;
	}
}

//volani staticke vlastnosti
$t = Trida::$statickaVlastnost;

//volani staticke metody
$t = Trida::statickaMetoda();

//vytvoreni instance
$i = new Trida;

//volani vlastnosti
$t = $i -> vlastnost;

//volani metody
$t = $i -> metoda();

?>
edit: chybka...
DoubleThink
Profil *
(Nic proti tvemu, ale kazdy nekdy zacinal...)
Souhlasím, mě se jenom nechtělo vymýšlet script ;)
Lapiw
Profil *
OOP sa prave ucim, ospravedlnujem sa za mozno pre Vas blbe otazky. PHP ako take viem perfektne ale prechadzam postupne na OOP a nechcem niektorymi vecami kyvnut rukou ale chcem to vsetko riadne chapat.

No rozumiem, ale nevidim v tom ziadne potencialne vyuzitie, viete mi povedat kedy sa to ma pouzivat?

Dakujem.
suky
Profil
Lapiw
Jak uz jsme ti psali, pri statickych vlastnostech a metodach nemusis vytvaret instanci tridy, to se hodi napriklad v knihovnich tridach. Pokud to s OOP myslis opravdu vazne, doporucuju ti koupit si knihu Navrhove vzory (link).
Lapiw
Profil *
dakujem za tip,

ale tam su tie vzory pisane v JAVE nie? Doporucujete mi to aj ked som PHP-ista?

Dakujem za odpoved.
suky
Profil
Lapiw
Samozrejme, me taky rikali, at se ucim OOP na nejakem jinem jazyku jako C++ nebo Java, jenze ono je lepsi vubec se nevazat na syntaxi a vytvorit takovou svoji, obecnou v hlave. Prevedeni do PHP by pak nemel byt zadny velky problem (link). Pokud si v OOP uplny novacek, doporucil bych ti jeste jednu knizku, predstav si ji jako slabikar pro prvnacka (link). A pamatuj, ze neni nejdulezitejsi to umet napsat, ale chapat podstatu!
Lapiw
Profil *
Dakujem za TIP :)

To na intervale poznam, to teraz postupne citam ale zrejme to su tam len take zaklady ze?
Kupim si asi tie 2 knihy rovno naraz a budem sa to ucit a ucit, ale verim, ze su to naozaj dobre knihy a ze by som to mal pochopit.

Dakujem!!!
suky
Profil
Lapiw
Na tom intervale to jsou sice zaklady, ale pro ty, kdo jiz OOP ovladaji a chteli ho pouzivat v PHP.

Jeste k tem kniham:

OOP Objektově orientované programování bez předchozích znalostí (link)
- hodne zjednodusenou a opakovaci formou ti predstavi zakladni myslenky OOP
- priklady jsou ukazany na Jave/C++/C#
- dozvis se zaklady, jako co je trida, rozhrani, metoda, polymorfismus, ...

Návrhové vzory (link)
- slozitejsi na pochopeni
- nutna znalost obsahu knihy, pokud chces OOP dobre rozumet
- pojednava o navrhovych vzorech, coz jsou urcite postupy objektoveho programovani

UML 2 a unifikovaný proces vývoje aplikací (link)
- zaobira se spis analyzou a navrhem aplikace v OOP
- UP & UML jsou taky zaklady pro programatora
- dovedeni projektu od zacatku az do konce

OOP se proste linearnim zpusobem nenaucis. Pokud to s OOP myslis opravdu vazne, myslim, ze by tvoje knihovna tyhle tri (aspon teda ty dve posledni, ale zase bez znalosti te prvni jsou ty dalsi dve k nicemu) knihy mela obsahovat. Me pomahaji uzasnym zpusobem.
suky
Profil
Vytvoril jsem vlakno zabyvajici se vyukou OOP. (link)

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: