thesnarkie Posted May 26, 2010 Report Share Posted May 26, 2010 (edited) Ir klase core, klase alpha un klase beta. Klase core satur propertijus un metodes. Klase alpha extends klasi core. Klase beta extends klasi core. error_reporting(E_ALL); class core { public $error; public function show(){ return $this->error; } } class alpha extends core{ public function __construct(){ $this->error = "pardegam saule!"; } } class beta extends core { public function __construct(){ } } $alpha = new alpha(); $beta = new beta(); echo "BETA: ".$beta->show()."<br />"; //BETA: echo "ALPHA: ".$alpha->show()."<br />"; //APLHA: pardegam saule! Nu lūk, bet jautājums kāpēc un kā likt beta->show(); arī parādīt to erroru? Viņas taču extendo vienu klasi or I don't get it. :D Edited May 26, 2010 by thesnarkie Quote Link to comment Share on other sites More sharing options...
briedis Posted May 26, 2010 Report Share Posted May 26, 2010 Atkal tās sasodītās @ zīmītes... Nu jā, ja tu extendo klasi, tu manto metodes un īpašības. Viena objekta vērtības nekādā veidā nav saistītas ar otra objekta vērtībām šinī gadījumā. Varbūt palasi par statiskām metodēm, īpašībām, bet man liekas, ka tu te centies nest to, ko nemaz nevari pacelt. Palasi labāk pamatus par oop un centies izprast, kas kā... Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted May 26, 2010 Report Share Posted May 26, 2010 Klase 'beta' nevar zinaat, ko un kaa ekstendo klase 'alfa' (nu teoreetiski visu var, bet tas taa). Ja tev vajag lai 'pardegam saule!' ir veertiiba mainiigajam abaas klasees (alfa un beta), tad liekam to core klasee. Quote Link to comment Share on other sites More sharing options...
thesnarkie Posted May 26, 2010 Author Report Share Posted May 26, 2010 (edited) rATRIJ, jā tā varētu, bet tas nav tas ko gribēju. Es gribēju izveidot tādu main klasi un tad vairākus moduļus, kuri pēc tam varētu lietot main klases propertijus un nebūtu katrā moduļa klasē kaut kāda čerņa jādara, lai izmantotu main klases propertijus. Tad katrs modulis varētu arī main klasē mainīt propertijus u.tml.. Edited May 26, 2010 by thesnarkie Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted May 26, 2010 Report Share Posted May 26, 2010 (edited) Es nesaprotu tad tevi. Ko tu iisti gribi? Ja tu veelies lai abas klases izvada vienu un to pashu - kaadeelj tad tu pats gribi dubleeties un to rakstiit child klasees? o_O btw - child klase parent klases propertijus var override'ot (taapat kaa metodes). class A { protected $t = 'Saule'; public function show() { return $this->t; } } class B extends A { } class C extends A { protected $t = 'Meeness'; } $a = new A; $b = new B; $c = new C; echo $a->show() . '<br />'; // Saule echo $b->show() . '<br />'; // Saule echo $c->show() . '<br />'; // Meeness Edited May 26, 2010 by rATRIJS Quote Link to comment Share on other sites More sharing options...
briedis Posted May 26, 2010 Report Share Posted May 26, 2010 rATRIJ, jā tā varētu, bet tas nav tas ko gribēju. Es gribēju izveidot tādu main klasi un tad vairākus moduļus, kuri pēc tam varētu lietot main klases propertijus un nebūtu katrā moduļa klasē kaut kāda čerņa jādara, lai izmantotu main klases propertijus. Tad katrs modulis varētu arī main klasē mainīt propertijus u.tml.. Tad veido to main klasi kā statisku. http://www.php.net/manual/en/language.oop5.static.php Quote Link to comment Share on other sites More sharing options...
chizijs Posted May 26, 2010 Report Share Posted May 26, 2010 (edited) Labi, man slinkums taisīt jaunu topiku, bet varāt pateikt kāpēc izmēt šo eroru Parse error: syntax error, unexpected T_VARIABLE in C:\webserv\xampp\htdocs\cup.php on line 4 kods: class lapa { public $id = $_GET['id']; function show() { echo $this->id; } } $radit = new lapa; $radit->show(); 4.rinda ir public $id.. Edited May 26, 2010 by chizijs Quote Link to comment Share on other sites More sharing options...
thesnarkie Posted May 26, 2010 Author Report Share Posted May 26, 2010 (edited) <? class lapa { public $id; public function __construct(){ $this->id = $_GET['id']; } function show() { echo $this->id; } } $radit = new lapa; $radit->show(); ?> Edited May 26, 2010 by thesnarkie Quote Link to comment Share on other sites More sharing options...
chizijs Posted May 26, 2010 Report Share Posted May 26, 2010 mmm.. Paldies, thesnarkie! :) 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.