mysql_query Posted June 10, 2011 Report Share Posted June 10, 2011 (edited) Vai varat pateikt, kāda ir nozīme "Object-Oriented Programming", kas ir labāks, lietojot šo? Tik pat labi es varu lietot pliku funkciju. Piemērs: <?php class Box { var $contents; function Box($contents) { $this->contents = $contents; } function get_whats_inside() { return $this->contents; } } $mybox = new Box("Jack"); echo $mybox->get_whats_inside(); ?> Edited June 10, 2011 by mysql_query Quote Link to comment Share on other sites More sharing options...
daGrevis Posted June 10, 2011 Report Share Posted June 10, 2011 What's the point of OOP? P.S. Neizmanto "var" pirms mainīgajiem. Tā darīja, kad bija PHP 4. Tev vajadzētu norādīt redzamību pirms mainīgajiem! Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 10, 2011 Report Share Posted June 10, 2011 Te jau forumaa liekas ir bijushas daudzas diskusijas par OOP un taa lietderiigumu. Pameklee sheit: http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=site%3Aphp.lv+oop Re ku kaut kas ko uz aatru roku atradu: http://php.lv/f/topic/1068-oop-stils/ Tiesa ir jaabuut labaakiem topikiem par to. Liekas kaadu laiku atpakalj veel bija kaartiigs flame war par to. + konstruktorus PHP5 laikos taisa taa class Example { public function __construct() {} } Quote Link to comment Share on other sites More sharing options...
Kverkagambo Posted June 10, 2011 Report Share Posted June 10, 2011 Man objektos visvairāk patīk tas, ka objekta mainīgie ir pieejami visās objekta funkcijās. Citā gadījumā šie mainīgie būtu jāpadod kā parametri vai jādefinē kā globālie katrā funkcijā. Vismaz tas man visvairāk iepatikās objektos, kad es par tiem pirmo reizi uzzināju. Tiesa, PHP ir tāds trūkums, ka katram mainīgajam un funkcijai ir jāraksta priekšā "$this->", pēc citām programmēšanas valodām tas liekas apgrūtinoši. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted June 10, 2011 Report Share Posted June 10, 2011 Kverkagambo, tas ir plus. class Foo { public $x, $y; function bar() { $this->x = 'bar'; } function baz( $y ) { $this->y = 'baz'; $y = 'foo'; // Ja būtu tā, nebūtu zināms par ko ir runa... } } Quote Link to comment Share on other sites More sharing options...
briedis Posted June 10, 2011 Report Share Posted June 10, 2011 (edited) Kverkagambo, tas ir plus. Tāpēc java piedāvā arī this.mainigais. private int a; function setA(int a){ this.a = a; } Tas ir normāli, ja funkcijas arguments parasti ir nosaukts tāpat kā atbilstošais privātais mainīgais. Edited June 10, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
Rincewind Posted June 10, 2011 Report Share Posted June 10, 2011 Kverkagambo, tas ir plus. Citās valodās arī var norādīt kurš mainīgais ir domāts, tā ka nav gan :D Quote Link to comment Share on other sites More sharing options...
daGrevis Posted June 10, 2011 Report Share Posted June 10, 2011 Nez... Man patīk, ka ir jāraksta "this". Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 10, 2011 Report Share Posted June 10, 2011 (edited) Toties JAVA'aa ja nav defineets lokaalais metodes mainiigais ar taadu pashu vaardu kaa klases mainiigais, tad tas attieksies uz klases mainiigo nevis izveidos jaunu lokaalo mainiigo. class Test { private int p; public void setP(int p) { this.p = p; } public int getP() { return p; } } IMO PHP vareetu padariit iisaak rakstaamu. Piemeeram tas ka nevar dariit shaadi mani ljoti tracina: $array = array(); // var dariit :) $array = []; // nevar dariit :( Ieksh Ruby, piemeeram, pie instances atribuutiem var veersties shaadi: class Test def increment @property++ end end Kas man liekas eertaak un forshaak... Tiesa taadas izmainjas man visticamaak nekad nesagaidiit :) Edited June 10, 2011 by rATRIJS Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.