Jump to content
php.lv forumi

Čaiņikam Oop


Recommended Posts

Atvēru manuāli http://lv.php.net/manual/en/language.oop.php

un uzdūros te: http://paste.php.lv/175/

iepatikās izpildītais rezultāts :)

Varbūt kāds OOP specs vai zinošs par šo temu varētu "latviski" pastāstīt vai tml.

Piemēram ko nozīmē un ko "dara" tas un tas:

<code><font color="#000000">
<font color="#0000CC"><?php [url=http://lv.php.net/error_reporting]error_reporting[/url]</font><font color="#006600">(</font><font color="#0000CC">E_ALL</font><font color="#006600">);
</font><font color="#FF9900">// OOP
</font><font color="#006600">class </font><font color="#0000CC">test </font><font color="#006600">{  </font><font color="#FF9900">// class ievaac visu infu par variabljiem un funkcijām ???
</font><font color="#006600">function </font><font color="#0000CC">a</font><font color="#006600">(</font><font color="#0000CC">$b</font><font color="#006600">,</font><font color="#0000CC">$c</font><font color="#006600">) { </font><font color="#FF9900">// funkcija zinu ko dara he
 </font><font color="#0000CC">$b </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/strip_tags]strip_tags[/url]</font><font color="#006600">(</font><font color="#0000CC">$b</font><font color="#006600">,</font><font color="#0000CC">$c</font><font color="#006600">);
 return </font><font color="#0000CC">$b</font><font color="#006600">;
}
var </font><font color="#0000CC">$f</font><font color="#006600">; </font><font color="#FF9900">// īsti nepielec, var definē variabli $f ?
</font><font color="#006600">function </font><font color="#0000CC">e</font><font color="#006600">() {
</font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">f </font><font color="#006600">= </font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">a</font><font color="#006600">(</font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">f</font><font color="#006600">,</font><font color="#CC0000">'<a><b>'</font><font color="#006600">); </font><font color="#FF9900">// Ko dara -> $this tagad būs kā $f ?
</font><font color="#006600">}
} </font><font color="#FF9900">// beidzas class ???
</font><font color="#0000CC">$ku </font><font color="#006600">= new </font><font color="#0000CC">test</font><font color="#006600">; </font><font color="#FF9900">// ko dara new ???
</font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">f </font><font color="#006600">= </font><font color="#CC0000">'<i>hehe</i> <a href="http://test">hmm</a> bla bla <p>brrr</p>
	  <b>nice</b>'</font><font color="#006600">;
</font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">e</font><font color="#006600">();   </font><font color="#FF9900">//?
</font><font color="#006600">echo </font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">f</font><font color="#006600">;  </font><font color="#FF9900">//?
</font><font color="#0000CC">?></font>
</font>
</code>

Lasu jau lasu to manuāli, lēni pielec

Link to post
Share on other sites

biki teorija:

Klase (objekts) ir, kaut kāds koda kopums, kas sastāv no metodēm (funkcijas, kas definētas iekš class{ /*...*/ }) un paramteriem (variabļi, kas definēti iekš class { /* */ } ar var $var_name;)

Ja klases ietvaros no kādas metodes gribi izsaukt citu šīs pašas klases funkciju tad to pieraksta $this -> func_name(); , lidzīgi tiek klāt pie klases paramtriem, ar $this -> varname; .

Tad kad, kaut kur citur, uztaisa klases instanci ($myclass = new MyClass(); ) tad pie klases metodēm tiek klāt rakstot $myclass -> func_name();, bet pie parametriem $myclass -> varname;

aaa, ja nu aizmirsīsi klasē ierakstīt var $varname, nekas traģisks nebūs :) ,viss it kā strādās tāpat, jo php objekti ir tā kā ir..

-----------------------------------

var $f; // īsti nepielec, var definē variabli $f ? --Ar to definē klases propertiju.

$this->f = $this->a($this->f,'<a><b>'); // Ko dara -> $this tagad būs kā $f ? --propertijs "f" būs rādītājs (īsti nezinu, vai tā to sauc) uz metodi "a", kurai par parametru ir propertijs "f" un strings '<a><b>'

} // beidzas class ??? -- jā

$ku = new test; // ko dara new ??? --new uztaisa (konstruē) jaunu objektu (class instance). ja klasē ir metode, kas saucas tāpat kā klase (konstruktors ) tad tā tiek izpildīta.

Link to post
Share on other sites

Emm, tas bija tikai testinjsh, jo man bija kjibele ar claseem. kaut kur aiz n-tajaam funkcijaam pazuda mainiigie.

fishka bija taada, ka nodefinee kadu funkciju, kas teiksim stripos tagus (shajaa gadiijumaa) un sho funkciju buus jaaizmanto vairaakaas citaas vietaas. taa kaa oop shajaa gadiijumaa bija labaakais variants kaa to realizeet. un tapec uzrakstiiju taadu vienkaarshu piemeeru :rolleyes:

Link to post
Share on other sites

<code><font color="#000000">

<font color="#0000CC"><?php 
</font><font color="#006600">class </font><font color="#0000CC">test 
</font><font color="#006600">{  
</font><font color="#FF9900">/*class ievaac visu infu par variabljiem un funkcijām ??? [tikai tie saucaas members and methods, jeb attributes un methods. tos var saukt tikai klasei, vai klases objektam - vienus pashus neizsauksi*/
 </font><font color="#006600">function </font><font color="#0000CC">a</font><font color="#006600">(</font><font color="#0000CC">$b</font><font color="#006600">,</font><font color="#0000CC">$c</font><font color="#006600">) 
 { </font><font color="#FF9900">// funkcija zinu ko dara he
	  </font><font color="#0000CC">$b </font><font color="#006600">= </font><font color="#0000CC">[url=http://lv.php.net/strip_tags]strip_tags[/url]</font><font color="#006600">(</font><font color="#0000CC">$b</font><font color="#006600">,</font><font color="#0000CC">$c</font><font color="#006600">);
	  return </font><font color="#0000CC">$b</font><font color="#006600">;
 }
 var </font><font color="#0000CC">$f</font><font color="#006600">; </font><font color="#FF9900">// īsti nepielec, var definē variabli $f ? [yep]
 </font><font color="#006600">function </font><font color="#0000CC">e</font><font color="#006600">() 
 {
	 </font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">f </font><font color="#006600">= </font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">a</font><font color="#006600">(</font><font color="#0000CC">$this</font><font color="#006600">-></font><font color="#0000CC">f</font><font color="#006600">,</font><font color="#CC0000">'<a><b>'</font><font color="#006600">); </font><font color="#FF9900">// Ko dara -> $this tagad būs kā $f ?
	 //$this->f ir tas pats ko nodefineeja ar var $f; shii metode vinjam pieshkjir jaunu veertiibu
 </font><font color="#006600">}
} </font><font color="#FF9900">// beidzas klases apraksts

</font><font color="#0000CC">$ku </font><font color="#006600">= new </font><font color="#0000CC">test</font><font color="#006600">; </font><font color="#FF9900">// ko dara new ??? [rada jaunu objektu, kura klase ir test]
</font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">f </font><font color="#006600">= </font><font color="#CC0000">'<i>hehe</i> <a href="http://test">hmm</a> bla bla <p>brrr</p>
	  <b>nice</b>'</font><font color="#006600">; </font><font color="#FF9900">//iemochiii shii objekta atribuutaa veertiibu
</font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">e</font><font color="#006600">();   </font><font color="#FF9900">// un izsauc tam metodi. metode (skat augstaak) - izsauc metodi a, kas savukaart striipo tagus.
</font><font color="#006600">echo </font><font color="#0000CC">$ku</font><font color="#006600">-></font><font color="#0000CC">f</font><font color="#006600">;  </font><font color="#FF9900">//un she apskataas, kas sanaacis
</font><font color="#0000CC">?>
</font>
</font>
</code>

 

attieciiigi jaunam $dza = new test; $dza->f buus savaadaaks nekaa $ku->f

 

:)

Link to post
Share on other sites
  • 2 weeks later...

Zinu, nav par tēmu un tomēr. Bļahamuha, izrādās:

 

class Factory

{

function makeObject($name)

{

return new $name . 'View';

}

}

 

class FactoryView

{

}

 

un Factory::makeObject('Factory') uztaisa nevis FactoryView objektu, bet Factory !!! Nezinu vai vainīgs mans error handleris, bet PHP vēsā mierā klusē un nebļauj, ka man nav zolīdi uzrakstīts. Mazliet pastulbi, bet labu laiciņu (12 gadus) brīnījos ko, bļe, mans skripts sešus gadus izpildas.

Cik es saprotu, tad iekaviņās jau arī nemaz nevar likti (bļauj errorus visādus). Jāliek ira

 

$classname = $name . 'View';

return new $classname;

Link to post
Share on other sites
×
×
  • Create New...