[ Milos911 @ 12.10.2009. 16:52 ] @
Imam stranicu index.php
Code:
$component = new component();
$component->pid = 1;


i stranicu sa klasom
Code:

class component
    {
    public $pid;
    

    function display_main()
        {
        $pid=$this->pid;
        echo "$pid";
        }    
    }

Pitanje: Da li mogu da pristupim atributu klase ($pid) iz funkcije display_main() a da ne pisem $pid=$this->pid ?
Ili da preformulisem da li mogu nekako da dozvolim svim funkcijama u klasi da automatski koriste pid-u (posto ih imam brdo, a ne svidja mi se ideja da u svakoj pisem $pid=$this->pid).
Da ne pomislite da sam lenj, ispale su mi oci od citanja i guglanja i nikako da nadjem objasnjenje za ovo...
[ Miroslav Ćurčić @ 12.10.2009. 17:06 ] @
Nemaš potrebe za $pid=$this->pid;
Stavi direktno echo $this->pid;

U svakom slučaju ako ne staviš $this-> smatraće to lokalnom promenljivom.
[ vatri @ 12.10.2009. 17:48 ] @
Nije mi jasno sta ce ti $pid=$this->pid;

gore na pocetku si deklarirao $pid kojoj pristupas sa $this->pid u CIJELOJ klasi component odnosno ako pravi instancu te klase u nekom drugom fajlu recimo ovako:

Code:


include 'component.class.php';

$com = new component; // to je instanca

echo $com->pid; // znaci umjesto $this upotrebljavas $com odnosno instancu



evo super dokument za PHP OOP ja sam ga procitao i puno toga mi je bilo jasnije

http://rapidshare.com/files/292082218/PHP_5_power_programming.pdf
[ Milos911 @ 12.10.2009. 18:14 ] @
Citat:
Nije mi jasno sta ce ti $pid=$this->pid;

U funkcijama dosta koristim varijablu pid pa mi je citljiviji kod kad na vrhu funkcije napisem da je pid = to i to, da ne moram na 100 mesta isto da ponavljam. Mislio sam da nekako mogu i to da izbegnem (pa da samo upisem gore u klasi pid) ali izgleda da je to nemoguce. Hvala za pdf.
[ vatri @ 12.10.2009. 19:44 ] @
ne razumijem najbolje sta ti ustvari hoces?

u svakoj funkciji unutar te klase mozes da koristis $this->pid a mozes na vrhu takodje dodjelit default vrijednost public $pid = neki id, a mozes ju takodje pomocu funkcije __construct() definisat.... Samo reci tacno i preciznije sta hoces?
[ Nikola Poša @ 12.10.2009. 20:30 ] @
Pa kad si već deklarisao tu promenljivu kao člana klase (public $pid), ti možeš da joj pristupaš u svakoj metodi te tvoje klase sa $this->pid. Nije valjda da ti smeta što stalno mora da pišeš $this->pid?
[ Milos911 @ 12.10.2009. 22:24 ] @
Citat:
Nikola Poša: Pa kad si već deklarisao tu promenljivu kao člana klase (public $pid), ti možeš da joj pristupaš u svakoj metodi te tvoje klase sa $this->pid. Nije valjda da ti smeta što stalno mora da pišeš $this->pid? :)

Upravo to mi smeta :) Ova klasa ce za par dana imati oko 100 funkcija. I sam me brine da cu mozda morati da promenim pid na vrhu, a u funkcijama cu na 500 mesta napisati $pid=$this->pid;(preterujem :)). I znaci osecam da cu onda napraviti jedno veliko s*anje :) Ali ok, samo me je zanimalo da li je moguce da izbegnem ovo. Kad nije nema veze, pisacu $this->pid :) Uostalom ko pita ne skita :D
Hvala jos jednom :)
[ agvozden @ 12.10.2009. 22:50 ] @
Kao sto su ljudi rekli, nema smisla da koristis $pid = $this -> pid;
prihvati $this -> pid kao nesto standardno i sa tim radi. U suprotnom neces daleko odmaci jer neke klase imaju 50 promenljivih, pa neces moci sve da ih pakujes ovako.
[ japan @ 12.10.2009. 23:07 ] @
Citat:
Milos911: sam me brine da cu mozda morati da promenim pid na vrhu, a u funkcijama cu na 500 mesta napisati $pid=$this->pid;


Pa ti kao da programiraš na bušenim karticama, pa nemaš search and replace u editoru... :)
[ Milos911 @ 12.10.2009. 23:23 ] @
Ovo je jedina promenljiva koju koriste sve funkcije u klasi(pa mi je trenutno lakse ovako)...Znaci praksa je da se uvek pise $this->something?

Citat:
Pa ti kao da programiraš na bušenim karticama, pa nemaš search and replace u editoru... :)

Zar nisi cuo da srbija zaostaje za svetom? Niko ne zna koliko ;) :D
[ japan @ 12.10.2009. 23:39 ] @
Apsolutno nema razloga da uvodiš još jednu lokalnu promenljivu koja će još dodatno da ti zauzima memoriju. Nije da ćeš u ovom konkretnom slučaju nešto mnogo da profitiraš sa tih par bajtova, ali nije loše da imaš i te stvari na umu kad pišeš klase/funkcije.
[ Milos911 @ 13.10.2009. 01:08 ] @
Ok. Razumeo i primio k znanju
Hvala (opet(e vise necu govoriti hvala jer se zbog toga sam sebi gadim. Pocinjem da zvucim nezahvalno kad 1000x kazem hvala . Sutra cu da pitam jos par stvari i da znate unapred da cu biti zahvalan za odgovore))