tsereg
veljača 2012 14:09 18
21
Pitanje za razmišljanje, vezano uz destruktore:
što se dešava kada se alocira neki resurs koji PHP neće oslobiti automatizmom (npr. nešto preko neke vanjske biblioteke), a skripta se prestane izvršavati pozivom procedure exit(); koja bi uloga destruktora mogla biti u tom scenariju?
Sakupljač smeća?
Mogao bi uništiti alocirane resurse i tako osloboditi memoriju.
Dobar primjer u php-u je rad sa slikama preko GD biblioteke. Ako nisi izričito uništio taj resurs, php ga sam neće uništiti.
horki
veljača 2012 20:32 21
23
možda nešto ovako, za početak?
horki
veljača 2012 10:42 22
24
Što je točno resurs? Nisam skužio
Opet nemaš neki public interface gdje bih ja mogao upisati npr.
http://php.net/manual/en/language.types.resource.php
Evo kako sam ja to zamislio.
Primjeti da svaka metoda (osim open gdje se postavlja) koristi referencu na resurs ($this->resource)
I to bi koristio ovako
horki
veljača 2012 18:54 22
27
Plaćam piće! bome imam novog sadržaja za apsorbirat
gorrc
veljača 2012 06:49 23
28
Iako ti se moj primjer čini teški overkill kako bi library rasao tako bi vidio prednosti.
Jedna prednost koja mi odmah pada na pamet je da možeš u File staviti i metodu onDelete() koja se poziva FileHandleru prije brisanja a tamo postaviš kao postupati za svaki file posebno poslje, prije ili tokom brisanja.
Iako ti se moj primjer čini teški overkill kako bi library rasao tako bi vidio prednosti.
Jedna prednost koja mi odmah pada na pamet je da možeš u File staviti i metodu onDelete() koja se poziva FileHandleru prije brisanja a tamo postaviš kao postupati za svaki file posebno poslje, prije ili tokom brisanja.
horki
veljača 2012 20:09 23
29
http://psoug.org/snippet/Recursive_function_to_generate_a_parentchild_tree_338.htm
Primjer parent-child Tree , koji je skoro OOP , ali dali postoji neki jednostavniji način tog primjera?
horki
veljača 2012 10:50 29
30
ovo mi je bilo zbunjujuće
<span class="syntaxdefault">$len </span><span class="syntaxkeyword">= (!</span><span class="syntaxdefault">$length</span><span class="syntaxkeyword">) ? </span><span class="syntaxdefault">filesize</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">filename</span><span class="syntaxkeyword">) : </span><span class="syntaxdefault">$length</span><span class="syntaxkeyword">; </span><span class="syntaxdefault"></span>
;
ali onda sam shvatio kada sam opet malo kopao po JAVI
isto vrijedi i za sprintf funkciju
horki
veljača 2012 23:08 29
31
...
[code=php]<span class="syntaxdefault"><br /></span><span class="syntaxkeyword">Class </span><span class="syntaxdefault">Two</span><span class="syntaxkeyword">{<br /> public </span><span class="syntaxdefault">$first</span><span class="syntaxkeyword">;<br /> public </span><span class="syntaxdefault">$second</span><span class="syntaxkeyword">;<br /><br /> public function </span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$first</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$second</span><span class="syntaxkeyword">){<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">first</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$first</span><span class="syntaxkeyword">;<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">second</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$second</span><span class="syntaxkeyword">;<br /> }<br /> public function </span><span class="syntaxdefault">get</span><span class="syntaxkeyword">(){<br /> return </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">;<br /> }<br />}<br /><br /></span><span class="syntaxdefault">$two</span><span class="syntaxkeyword">= new </span><span class="syntaxdefault">Two</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"prvi"</span><span class="syntaxkeyword">, </span><span class="syntaxstring">"drugi"</span><span class="syntaxkeyword">);<br /><br />foreach(</span><span class="syntaxdefault">$two</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get</span><span class="syntaxkeyword">() as </span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">=> </span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">){<br /> echo </span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">.</span><span class="syntaxstring">" "</span><span class="syntaxkeyword">;<br />}<br /><br /> </span><span class="syntaxdefault"></span>[/code]
…
horki
ožujak 2012 07:42 1
32
....
[code=php]<span class="syntaxdefault"><br /></span><span class="syntaxkeyword">class </span><span class="syntaxdefault">Calculator</span><span class="syntaxkeyword">{<br /> public </span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">4</span><span class="syntaxkeyword">;<br /> public </span><span class="syntaxdefault">$b</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">2</span><span class="syntaxkeyword">;<br /> public </span><span class="syntaxdefault">$c</span><span class="syntaxkeyword">;<br /> <br /> public function </span><span class="syntaxdefault">math</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">){<br /> if(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">==</span><span class="syntaxstring">"+" </span><span class="syntaxkeyword">|| </span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">==</span><span class="syntaxstring">"-" </span><span class="syntaxkeyword">|| </span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">==</span><span class="syntaxstring">"*" </span><span class="syntaxkeyword">|| </span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">==</span><span class="syntaxstring">"/"</span><span class="syntaxkeyword">){<br /> if(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">== </span><span class="syntaxstring">"+"</span><span class="syntaxkeyword">){<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">c</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">a </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">b</span><span class="syntaxkeyword">;<br /> } <br /> else if(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">== </span><span class="syntaxstring">"-"</span><span class="syntaxkeyword">){<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">c</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">a </span><span class="syntaxkeyword">- </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">b</span><span class="syntaxkeyword">;<br /> }<br /> else if(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">== </span><span class="syntaxstring">"*"</span><span class="syntaxkeyword">){<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">c</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">a </span><span class="syntaxkeyword">* </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">b</span><span class="syntaxkeyword">;<br /> }<br /> else if(</span><span class="syntaxdefault">$input</span><span class="syntaxkeyword">== </span><span class="syntaxstring">"/"</span><span class="syntaxkeyword">){<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">c</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">a </span><span class="syntaxkeyword">/ </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">b</span><span class="syntaxkeyword">;<br /> }<br /> return </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">c</span><span class="syntaxkeyword">;<br /> <br /> <br /> }<br /> else{<br /> echo </span><span class="syntaxstring">"Please insert '+' '-' '*' '/' <br />"</span><span class="syntaxkeyword">;<br /> return </span><span class="syntaxdefault">FALSE</span><span class="syntaxkeyword">;<br /> } <br /> }<br /> <br />}<br /> </span><span class="syntaxdefault"></span>[/code]
…