Toon posts:

[PHP4] Functiedefinitie buiten klasse plaatsen

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb al een stuk langer c++ gedaan en ben nu ff php4 aan het leren. maar bij het maken van me klasses wordt het nogal onoverzichtelijk aangezien ik nog niet heb gevonden hoe je de de functie buiten de klasse zelf kan declareren..

ff voorbeeldje in c++
code:
1
2
3
4
5
6
7
8
class Foo{
  public:
    int bar();
}

int Foo::bar(){
  // lots of stuff here
}


en de enige tegenhanger die ik in php tegen kom is:
code:
1
2
3
4
5
class Foo{
  function bar() {
    //lots of stuff here
  }
}


het nadeel is dat de klasse erg onoverzichtelijk wordt. zoals het eerste voorbeeld kan je in 1 oogopslag zien wat de interface voor de klasse is. in het 2e voorbeeld moet je eerst de code er tussenuit vissen (in dit voorbeeld niet veel, maar heb nu een klasse voor me van ruim 2 pagina's en ze zullen later vast nog veeeeel groter worden ;) )

dus kan iemand me vertellen of ik in php4, of anders 5(dan moet ik maar gaan upgraden) de functies buiten de klasse kan declareren?

  • cytherea
  • Registratie: Oktober 2003
  • Laatst online: 18-02 16:10
Euhm, vrij simpel. nee dat kan niet. (en ik weet het van php4)

In c++ is dat inderdaad erg mooi maar het lijkt me ook onoverzichtelijk worden na een tijdje dan weet je niet meer welke functie waar staat..

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21:36
Als je al wat OO kan en weet wat het doet, kan ik je aanraden om alvast over te stappen op PHP5. Die doet OO-wise wat het zou moeten doen, kwa references naar objecten en zo.

  • cytherea
  • Registratie: Oktober 2003
  • Laatst online: 18-02 16:10
Ja, dat zou ik ook doen. Ik ontwikkel nog steeds in php4 maar plannen voor php5 zijn er al en moet heel wat gaan herschrijven... Dus daar moet vantevoren even over nagedacht worden. php5 is qua OO veel uitgebreider dan 4.

Verwijderd

Topicstarter
he jammer ;) dacht ik ff lekker te proggen, moet ik toch eerst weer me server gaan aanpassen... het heeft weinig zin nu alles in php4 te zetten als ik toch over een paar dagen php5 ga installen... nouja. moet nu dan maar.

edit:

p.s. php5 kan dit (of iets vergelijkbaars) dus wel? of is die gewoon met alle andere OO dingen veeeel beter maar zijn ze dit toch vergeten? ;)

[ Voor 26% gewijzigd door Verwijderd op 15-03-2006 12:27 ]


  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 23-02 14:07

Tux

Voor zover ik weet kan het met PHP5 ook niet, maar elke fatsoenlijke editor heeft tegenwoordig code folding, dus dan kan je het zeer overzichtelijk maken.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Verwijderd

Topicstarter
Tux schreef op woensdag 15 maart 2006 @ 12:48:
Voor zover ik weet kan het met PHP5 ook niet, maar elke fatsoenlijke editor heeft tegenwoordig code folding, dus dan kan je het zeer overzichtelijk maken.
moet ik nou ook nog een fatsoenlijke editor gaan installen ;) heb nu enkel vi en joe op me server staan voor snelle edits :D

maarja... maar goed dat ik wel een fatsoenlijke editor op me windowsbak heb ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Tux schreef op woensdag 15 maart 2006 @ 12:48:
Voor zover ik weet kan het met PHP5 ook niet, maar elke fatsoenlijke editor heeft tegenwoordig code folding, dus dan kan je het zeer overzichtelijk maken.
PHP5 kent daarentegen wel interfaces, dus door die te gebruiken kan het dan weer wel. :P

Is C++ trouwens een van de weinige talen die het überhaupt mogelijk maakt om memberfunctions buiten de klassedefinitie te halen? Volgens mij kan wat TS wil bijvoorbeeld ook niet in Java, maar weer wel in Delphi.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
-NMe-: Is C++ trouwens een van de weinige talen die het überhaupt mogelijk maakt om memberfunctions buiten de klassedefinitie te halen? Volgens mij kan wat TS wil bijvoorbeeld ook niet in Java, maar weer wel in Delphi.
Qua mainstream talen is C++ idd een van de weinige die dit ondersteunt, maar in C# komt het ook in de vorm van "open classes". Voor Java kan je het eventueel doen met AspectJ, wat inter-type declarations ondersteunt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
mbravenboer schreef op woensdag 15 maart 2006 @ 15:55:
[...]
Qua mainstream talen is C++ idd een van de weinige die dit ondersteunt, maar in C# komt het ook in de vorm van "open classes". Voor Java kan je het eventueel doen met AspectJ, wat inter-type declarations ondersteunt.
Mmm. daar heb ik anders nog niks van gehoord. Je hebt in C# 2.0 natuurlijk wel partial classes maar dan moet je de functie definitie nog steeds bij de declaratie doen zover ik weet.

In C# 3.0 krijg je ook Extension methods maar dat is ook iets anders, aangezien je dan helemaal geen definitie van de methode in de class zelf hebt.

Maar het kan natuurlijk dat ik wat gemist heb aangezien ik me nog niet heel erg in C# 2.0/3.0 verdiept heb.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1