[oop] eigenschappen worden niet getoond/construct

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Junior/medior PHP developer Onderwijssector

Functie Momenteel zijn ze op zoek naar een developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Software Developer

Dit ga je doen Ontwerpen, ontwikkelen en onderhouden van (mobiele) internettoepassingen; Ontwikkelen en onderhouden van Microservices; Ontwerpen en optimaliseren van databases; Identificeren van nieuwe trends/ontwikkelingen binnen de branche. Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt zich op het leveren van kwalitatief hoogwaardige producten aan alle hun klanten. De organisatie telt circa 4.000 medewerkers in meer dan 10 verschillende landen. Momenteel is de organisatie op zoek naar een Software Developer wilt meewerken aan het

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Software ontwikkelaar ASP .Net / C#

Functie omschrijving Gezocht! Software ontwikkelaar. Ben jij bekend met termen als ASP .Net, C# en SQL? Ben jij op zoek naar een afwisselende en uitdagende IT-functie binnen de agrarische sector? En omschrijf jij jezelf als zelfstandig, enthousiast en proactief? Dan hebben wij de perfecte functie voor jou! Als Software ontwikkelaar binnen deze organisatie ben je samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Je gaat hierbij bijdragen aan de vertaling van klantwensen naar effectieve softwareoplossingen. Verder bestaan je werkzaamheden uit: Technische uitwerking van de business

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Pagina: 1 2 volgende »

Haubebla haubebla

haubebla haubebla

21/05/2013 17:54:16
Quote Anchor link
Hey!
Ik ben net begonnen met OOP, en ik was een klasse aan het schrijven om een soort diertjes te maken.

Dit is de klasse:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
class animal
{
//initalisatie
    private $maxvoer = 30;
    private $gevoerd = 10;
    private $health = 100;
    private $leeftijd = 0;
    private $gemaakt;
    private $soort;
    private $name;

//contructor
    public function __construct() {}
    
//method: toon_eigenschappen
    function toon_eigenschappen()
    {

    //initalisatie
        $this->leeftijd = tijd_verschil(time(),(real)$this->gemaakt);
        
        $soort = $this->soort;
        $gemaakt = $this->gemaakt;
        $leeftijd = $this->leeftijd;
        $naam = $this->name;
        $health = $this->health;
        $maxvoer = $this->maxvoer;
        $voer = $this->gevoerd;
        
        $content = "
<h3>$naam</h3>
Soort: $soort.<br />
Gemaakt: $gemaakt.<br />
Leeftijd: $leeftijd.<br />
Gezondheid: $health.<br />
Maxvoer: $maxvoer.<br />
Gevoerd: $voer.<br />
Naam: $naam.
        "
;
        echo $content;
    }
}


class metrix extends animal
{
    public function __construct($naam,$maxeten=30)
    {

        $this->maxvoer = $maxeten;
        $this->gemaakt = 1000000;
        $this->soort = 'metrix';
        $this->name = $naam;
    }
}

function
tijd_verschil($nu,$toen)
{

    if ( (!is_numeric($nu) ) || (!is_numeric($toen) ) )
    {

        trigger_error('Error in tijd_verschil: een van de tijden is geen UNIX tijd, $toen = '.$toen,E_USER_NOTICE);
        return;
    }

    $resultaat = $nu - $toen;
    
    $resultaat = date('G \u\r\e\n i \m\i\n\u\t\e\n \e\n s \s\e\c\o\n\d\e\n',$resultaat);
    
    return $resultaat;
}

?>


Dit is de aanroep:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta name="generator" content="HTML-Kit Tools" />
  </head>
<body>

<?php
require_once 'animals.class.php';

$nu = new metrix('Hallo');
$nu->toon_eigenschappen();
?>

</body>
</html>


Nu krijg ik dit als resultaat:
Quote:
Soort: .
Gemaakt: .
Leeftijd: 15 uren 48 minuten en 49 seconden.
Gezondheid: 100.
Maxvoer: 30.
Gevoerd: 10.
Naam: .

De tijd klopt dus niet en soort, gemaakt en naam worden niet getoond.
Ik kan de fout niet kunnen vinden (als beginner), dus kunnen jullie het vinden?
 
PHP hulp

PHP hulp

08/05/2024 19:29:57
 
Stephan G

Stephan G

24/05/2013 14:29:13
Quote Anchor link
Waar het fout gaat is dat je in de class animal een aantal waardes definieert als private. Deze waardes zijn dus alleen toegankelijk door de class animal en niet door classes die daarvan afstammen. De functie toon_eigenschappen() haalt $this->name op, maar in de ge-extende class metrix bestaat dat attribuut niet, omdat private attributen niet worden meegenomen bij het extenden. Als je in de animal class het woordje private voor je attribuutnamen verandert in protected (mag worden gebruikt door huidige class en alle afstammelingen, maar niet daarbuiten of public (mag altijd door alles worden gebruikt), zou het wel moeten werken.
 
Haubebla haubebla

haubebla haubebla

24/05/2013 14:35:29
Quote Anchor link
Hieperdepiep hoera!
Bedankt, wat ben ik toch stom.
Ach, beginnersfout.
 
Erwin H

Erwin H

24/05/2013 15:19:08
Quote Anchor link
Behalve dan dat je properties nooit public moet maken (en wat mij betreft ook nooit protected). Het ingeven en uitlezen van data doe je via setters en getters. Die methodes maak je vervolgens protected of public en op die manier kan je de waarde van een property veranderen. Hiermee voorkom je dat je later in de problemen komt als je de structuur van je class wilt aanpassen. Als er namelijk een andere class direct in je properties kan schrijven dan kan je nagenoeg nooit meer testen of je veranderingen wel werken.
 
Haubebla haubebla

haubebla haubebla

24/05/2013 15:21:22
Quote Anchor link
Erwin H op 24/05/2013 15:19:08:
Behalve dan dat je properties nooit public moet maken (en wat mij betreft ook nooit protected). Het ingeven en uitlezen van data doe je via setters en getters. Die methodes maak je vervolgens protected of public en op die manier kan je de waarde van een property veranderen. Hiermee voorkom je dat je later in de problemen komt als je de structuur van je class wilt aanpassen. Als er namelijk een andere class direct in je properties kan schrijven dan kan je nagenoeg nooit meer testen of je veranderingen wel werken.


Er zijn bijna geen objecten uit de klasse animal, dat is dus niet van belang.
 
Erwin H

Erwin H

24/05/2013 15:26:14
Quote Anchor link
Dan begrijp je niet wat ik zeg.... Het gaat niet om nu, het gaat om de toekomst. Het argument wat je geeft is dezelfde reden waarom we in het jaar 2000 allemaal dachten dat alle systemen plat zouden gaan. Als je echt met OOP aan de slag wilt (wat je titel doet vermoeden), dan staat elke class opzich. Elke class moet kunnen werken zonder zich zorgen hoeven te maken wat andere classen doen. Dat bereik je door een class dicht te zetten voor directe aanpassingen erin door anderen. Wat jij nu doet is het tegenovergestelde.

Maar goed, je komt er vanzelf achter als je wat langer bezig bent. Jammer dan wel dat je dan veel meer werk hebt aan het corrigeren van dit soort beginnersfouten dan dat je er nu aan zou hebben.

Toevoeging op 24/05/2013 15:30:06:

Voorbeeld: ik gok dat je over niet al te lange tijd erachter komt dat het property 'leeftijd' niet zo slim is. Dat property zal je namelijk elk jaar moeten aanpassen.... Als je nu geboortedatum (of jaar) opslaat hoeft dat. Dan kan je leeftijd gewoon uitrekenen.

Heb je nu een class die direct dat property uitleest dan heb je een probleem. Dan moet je ook die class aanpassen. Maar, als je het via een getter laat lopen dan hoef je alleen de getter aan te passen (die nu de leeftijd zal uitrekenen) en alle andere classes zullen er niets van merken. Scheelt je een hoop tijd en ellende kan ik je verzekeren.
 
Stephan G

Stephan G

24/05/2013 15:54:12
Quote Anchor link
Hmmm ja zo hier en daar kan dat handig zijn, maar dat vind ik zeker niet altijd nodig. Voor sommige properties is het om het even of je nu direct een getter/setter schrijft, of dat je het later doet. Of je die tijd er nou nu insteekt, of later: het blijft evenveel tijd, maar wie weet levert het je op de korte termijn tijdswinst op als je het niet direct doet.

Zo vind ik het best acceptabel dat je het object "Person" een public property "name" geeft, die je dan niet hoeft op te vragen d.m.v. $Person->getName(), maar d.m.v. $Person->name;. Duidelijk genoeg naar mijn smaak :). Maar ieder z'n voorkeur. Op den duur kom je er vanzelf achter wat wel en niet werkt. Als je je class gaat extenden kun je er altijd op dat moment voor kiezen om nog een getter functie te schrijven als je die nodig blijkt te gaan hebben.
 
Haubebla haubebla

haubebla haubebla

24/05/2013 16:03:01
Quote Anchor link
Leeftijd wordt door functie tijd_verschil() uitgerekend, op bassis van de geboortedatum (later uit database) en time(), daar hoef ik dus niks aan aan te passen.
 
Erwin H

Erwin H

24/05/2013 16:10:00
Quote Anchor link
Stephan G op 24/05/2013 15:54:12:
Hmmm ja zo hier en daar kan dat handig zijn, maar dat vind ik zeker niet altijd nodig. Voor sommige properties is het om het even of je nu direct een getter/setter schrijft, of dat je het later doet. Of je die tijd er nou nu insteekt, of later: het blijft evenveel tijd, maar wie weet levert het je op de korte termijn tijdswinst op als je het niet direct doet.

Zo vind ik het best acceptabel dat je het object "Person" een public property "name" geeft, die je dan niet hoeft op te vragen d.m.v. $Person->getName(), maar d.m.v. $Person->name;. Duidelijk genoeg naar mijn smaak :). Maar ieder z'n voorkeur. Op den duur kom je er vanzelf achter wat wel en niet werkt. Als je je class gaat extenden kun je er altijd op dat moment voor kiezen om nog een getter functie te schrijven als je die nodig blijkt te gaan hebben.

Je begrijpt volgens mij de insteek niet. Als je een class maakt met public properties dan kan je vast 'later' nog wel een setter schrijven. Maar ga je dan ook al je andere code langs om even te kijken waar precies dat property direct wordt aangesproken? Heb je enig idee hoeveel code je dan langs moet gaan? Als je het meteen goed doet heb je nooit(!) last van.

Maar goed, ik heb deze discussie inmiddels meerdere keren gevoerd op dit forum en hoewel ik begrijp dat meningen verschillen doet het me altijd deugd om mensen om te zien gaan naar private properties omdat ze er later toch achter komen dat dat toch echt slimmer is. Andersom ben ik het nog nooit tegen gekomen. Dus: doe vooral wat je wilt, maar denk hier nog eens aan terug als je de volgende keer weer al je code door moet spitten opzoek naar die ene plek waar dat property werd aangesproken dat je nu weg wilt halen....
 
Haubebla haubebla

haubebla haubebla

24/05/2013 16:11:26
Quote Anchor link
Als PHP een foutmelding ziet zie je toch gelijk het bestand en regelnummer?
 
Erwin H

Erwin H

24/05/2013 16:14:56
Quote Anchor link
Jij hebt zeker nog niet zoveel ervaring?

Ik heb meerdere websites draaien gebouwd op hetzelfde framework. Als ik iets in mijn framework verander en dat uitrol dan wil ik niet alle websites en alle pagina's en alle test cases langs moeten gaan om te zien of ik ergens misschien een foutmelding krijg. Los van het feit dat je nog steeds al die foutmeldingen moet oplossen. Als je het gewoon direct goed doet hoef je NIETS op te lossen.
 
Haubebla haubebla

haubebla haubebla

24/05/2013 16:24:05
Quote Anchor link
Ik heb maar een website, en ik ga mijn classes enzo nog niet publiceren.

En ik heb wel wat ervaring (vooral met databases en mysql), alleen niet op het gebied van OOP.
 
Erwin H

Erwin H

24/05/2013 16:28:31
Quote Anchor link
Zoals ik zei, doe vooral wat je wilt. Ik geef een tip waarvan ik weet dat veel mensen die in eerste instantie niet willen aannemen, maar er vaak later toch op terugkomen. Aan jou de keuze wat je ermee doet...
 
Stephan G

Stephan G

24/05/2013 16:40:20
Quote Anchor link
Doe gewoon wat voor jou werkt :). Als je het nut er nog niet van inziet, geen probleem. Doe het niet als je het niet wil, en als je je ooit bedenkt, dan moet je misschien wat aanpassen, maar dan snap je het wel meteen helemaal. Ik gebruik ook bijna geen classes waarin ik public properties aanmaak, maar als ik dat doe, dan maak ik wel een __get() en __set() functie erbij om die in ieder geval nog ietwat onder controle te hebben. Mocht je daar meer over willen weten, google dan even op "php magic methods". Good luck =]!
Gewijzigd op 24/05/2013 16:40:53 door Stephan G
 
Ozzie PHP

Ozzie PHP

24/05/2013 18:16:45
Quote Anchor link
Erwin geeft hier zeer nuttige tips. Wat je ermee doet moet je zelf weten, maar ik zou er gebruik van maken.
 
Haubebla haubebla

haubebla haubebla

23/07/2013 11:33:37
Quote Anchor link
Ik ben het met stephan G eens, ik snap het nu nog niet.
En van schade en schande wordt men wijs.
 
Ward van der Put
Moderator

Ward van der Put

23/07/2013 14:43:41
Quote Anchor link
Initialiseren? Ik las laatst in een [OOP]-boek dat initialiseren zo "not done" is dat de auteur niet eens wilde uitleggen waarom... Iemand die daarover iets meer kan zeggen?
 
Kris Peeters

Kris Peeters

23/07/2013 14:58:47
Quote Anchor link
Dan zou ik die uitleg van de auteur toch wel eens willen horen.
Ik kan me verschillende situaties voorstellen waarbij een init() methode nuttig kan zijn.

Maar meer nog; zo kan ik ook boeken schrijven.
Doe gewoon wat ik zeg. Waarom? Daarom!
 
Ward van der Put
Moderator

Ward van der Put

23/07/2013 15:14:52
Quote Anchor link
Het ging meer precies om deze passage uit Advanced PHP Programming van George Schlossnagle.

George Schlossnagle - Advanced PHP Programming:
Handling Constructor Failure
Handling constructor failure in an object is a difficult business. A class constructor in PHP must return an instance of that class, so the options are limited:

• You can use an intialized attribute in the object to mark it as correctly initialized.

• You can perform no initialization in the constructor.

• You can throw an exception in the constructor.

The first option is very inelegant, and we won't even consider it seriously. The second option is a pretty common way of handling constructors that might fail. […]
Gewijzigd op 23/07/2013 15:15:29 door Ward van der Put
 
Koen Vlaswinkel

Koen Vlaswinkel

23/07/2013 15:23:12
Quote Anchor link
Probeert hij hiermee niet te zeggen dat je een attribuut zoals $initialized aanmaakt en daarin true of false zet, en deze dan uitlezen waar je hem zou gebruiken?
 
Ward van der Put
Moderator

Ward van der Put

23/07/2013 15:29:29
Quote Anchor link
Koen Vlaswinkel op 23/07/2013 15:23:12:
Probeert hij hiermee niet te zeggen dat je een attribuut zoals $initialized aanmaakt en daarin true of false zet, en deze dan uitlezen waar je hem zou gebruiken?

Zoiets zal het inderdaad zijn, alleen vraag ik me af waarom je dat niet zou doen in bijvoorbeeld de constructor of een aparte init(). Als ik mijn auto initialiseer, gaan er ook na verschillende controles lampjes branden. En een geel lampje of, nog erger, rood lampje is niet okay, maar dat betekent nog niet dat de bijbehorende eigenschappen of het gehele object volledig onbruikbaar zijn.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.