Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: luokkakysymys

Sivun loppuun

Opiskelija [16.11.2006 01:16:10]

#

Yhdessä scriptissä on näin.

foreach(new testi('jotakin') as $x)
{
     echo $x->y();
}

Mitenkäs tuo testi luokka on tehty että sitä pystyy käyttämään noin?

Lisättäköön vielä, että tiedosto missä tuo testiluokka on salattu joten sieltä ei voi katsoa.

tsuriga [16.11.2006 02:40:37]

#

PHP5 Object Iterations. Eli tuo tulostaa luokan testi (toivottavasti tämä on Testi) julkiset muuttujat, mikäli sitä on siis kutsuttu luokan ulkopuolelta.

Opiskelija [17.11.2006 17:00:30]

#

Kiitoksia tuo selventi. Mutta onko siitä mitään haittaa jos luo taulukkoon isonkasan olioita kuten tuossa on tehty vai onko suotavampaa välittää silloin tiedot parametrina metodille?

Opiskelija [19.11.2006 22:05:38]

#

class x
{
	private $url = Asetukset::host.Asetukset::file;
...

Miksi tuo antaapi erroria "Parse error: parse error, unexpected '.', expecting ',' or ';'"

Mutta constructorissa toimii
$this->url = Asetukset::host.Asetukset::file;

sane [19.11.2006 22:37:34]

#

Tuo Asetukset... taitaa pitää laittaa lainausmerkkien sisään(").

Opiskelija [19.11.2006 23:32:16]

#

sane kirjoitti:

Tuo Asetukset... taitaa pitää laittaa lainausmerkkien sisään(").

Mutta silloinhan tuo toimii ihan eritavalla, siitä tulee merkkijono joka sisältää Asetukset.... tekstin. Tarkoitus on sijoittaa tuohon Asetukset luokan host ja file muuttujien tiedot.

tsuriga [19.11.2006 23:46:38]

#

En kyllä osaa sanoa, miksi se tuossa heittäisi virhettä, ei varmaan auta välit pisteen molemmin puolinkaan? Eipä sillä, samakos se alustus/esittely on hoitaa ennen konstruktoria, ja sitten asettaa arvo siellä konstruktorissa, näin itse toimin yleensä. Privaattijäsenien eteen on suositeltavaa laittaa _ ($_url). PEARin koodausstandardit.

Olga [20.11.2006 08:45:54]

#

Juu, eikös se ole oikeaoppinen tapa hoitaa noi alustukset konstruktorissa. Voi olla, että virhe johtuu ihan vain siitä.

tsuriga [20.11.2006 09:37:38]

#

Opiskelija kirjoitti:

Mutta onko siitä mitään haittaa jos luo taulukkoon isonkasan olioita kuten tuossa on tehty vai onko suotavampaa välittää silloin tiedot parametrina metodille?

Saisiko tähän jotain selvennystä, esimerkkiä tms.?

Opiskelija [28.11.2006 02:15:12]

#

Saahan toki selvennystä. Koodi on sit väsyneenä tehty joten se on sen mukaista, mutta kyl tuosta kai idean ymmärtänee.

Parametri juttu

$y = new Testi();
$x = new Testi2();

foreach($y->tee('jotakin') as $c)
{
     echo $x->y($c);
}

Tuo tee-metodi palauttaa tiedot arrayna.

Sitten tuo taulukko olio juttu on tuo aikasempa esimerkki.


Tutkimpa tuota PEARin koodausstandardeja, mutta hieman ihmetyttää miksi if ja funktiot kirjoitetaan eritavalla?

Mielestäni selvempä on varsinkin jos pitempä koodinpätkä tulee tuohon.

if (..)
{
...
}

tsuriga kirjoitti:

ei varmaan auta välit pisteen molemmin puolinkaan? Eipä sillä, samakos se alustus/esittely on hoitaa ennen konstruktoria, ja sitten asettaa arvo siellä konstruktorissa

Ei tuolla ole mitään vaikutusta yhä sama errori tulee. Täytyypä sitten tehdä noin, tosin aika outoa että private $url = Asetukset::host; toimii tuossa kohdin ongelmitta vasta . aiheuttaa errorin.

Olga kirjoitti:

Juu, eikös se ole oikeaoppinen tapa hoitaa noi alustukset konstruktorissa. Voi olla, että virhe johtuu ihan vain siitä.

Kenties, mutta toisaaltaan http://pear.php.net/manual/en/standards.sample.php on myös tehty esittelyn yhteydessä tosin tuo taitanee olla PHP 4:lle tehty.


Vielä semmoista olisiko tiedossa hyvää olioden saloihin opastavaa opasta mieluiten lähinnä PHP:lle?
Kun tuo olio ajattelumailma on viel vähän hakusessa, PHP:n manuaali ei siinä juurikaan mitään auta.

Olga [28.11.2006 07:37:19]

#

Ainakin tuo readme.fi:n PHP5 & MySQL ohjelmointi (W. Jason Gilmore) on varsin kattava yleisteos ja siitä löytyy myös erittäin perusteellinen olio-osuus. Vaikka itse luinkin opuksen vasta näin enemmän oppineena, oli siinä rutkasti uusia juttuja ja vinkkejä. Jos PHP:n manuaali on raamattu, niin tuo on sitten varmaan joku virsikirja :)

Opiskelija [30.11.2006 15:05:59]

#

Olga kirjoitti:

Ainakin tuo readme.fi:n PHP5 & MySQL ohjelmointi (W. Jason Gilmore) on varsin kattava yleisteos ja siitä löytyy myös erittäin perusteellinen olio-osuus. Vaikka itse luinkin opuksen vasta näin enemmän oppineena, oli siinä rutkasti uusia juttuja ja vinkkejä. Jos PHP:n manuaali on raamattu, niin tuo on sitten varmaan joku virsikirja :)

Tuo kirja löytyy hyllystä, hyvä kirja, mutta siinä lähinnä opastetaan miten teet oliota jne... perusasiat, eikä pukahda paljoakaan suunnittelumalleista, UML:stä jne... ajattelumailman asioista. Sama juttu on PHP:n manuaalin kanssa.

Olga [30.11.2006 18:15:41]

#

Ok, ymmärsin siis "hieman" väärin mitä hait takaa :) Tosi on, kirjasta löytyy ainoastaan nuo perusteet olio-ohjelmoinnista ja nuo mainitsemani uudet jutut ja vinkit liittyvät ihan yleensä kirjan asioihin, ei niinkään tuohon olio-osuuteen. Mutta valitettavasti en nyt osaa auttaa tuon kirjan suhteen. Varmasti nettikirjakauppojen (docendo, readme, dataclub, it-press ja muut) sivuilta löytyy hyviä vaihtoehtoja.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta