[ 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

))
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.