OOP vragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

Java Developer

Dit ga je doen Het ontwikkelen van nieuwe software; Het ombouwen van de bestaande software; Zowel back- als front-end software ontwikkelen; Het testen; Het implementeren van de volledig geteste software; Het verzorgen van nazorg en het oplossen van bugs; Het opstellen en bijhouden van procesdocumentatie; Je draagt bij aan het agile/scrum processen van het team. Hier ga je werken Ongetwijfeld heb je een of meerdere producten van deze organisatie in huis. Het proces erachter, daar ben je ongetwijfeld minder bekend mee. Deze opdracht geeft je de kans meer over dit proces te weten te komen en een mooie bijdrage te

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET developer

Functie Voor jou als junior .NET ontwikkelaar staat er een flinke uitdaging klaar bij dit bedrijf waar jij veel van kan gaan leren. Zo willen zij een flinke uitbreiding doen op het webbased gedeelte dat zij nu hebben en willen zij het standaard deel gaan moderniseren. Jouw team is dan ook op zoek naar een junior .NET ontwikkelaar die het leuk vindt om op basis van research en development aan de slag te gaan. Jouw mening telt mee als het gaat om hoe en met wat deze applicaties gebouwd en herschreven gaan worden. Jouw functie bij dit bedrijf gaat dan

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Java Front-end Developer

Dit ga je doen Ontwikkelen van nieuwe functionaliteiten in Java met tools als Springboot, MS SQL Server (T-SQL) en JavaScript; Het onderhouden van de (web-)applicaties binnen een complexe omgeving; Werken aan de migratie van een monolithisch systeem naar een architectuur gebaseerd op Kubernetes; Code reviews met collega's en actieve kennisuitdelingsessies voeren; Het uitvoeren van unit- en systeemtests Experimenteren met nieuwe tools en technieken. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid hebben

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »
Zim Zim

Zim Zim

30/12/2006 11:36:00
Quote Anchor link
Zo eindelijk gebruik maken vanhet OOP topic.
Ik ben bezig met OOP leren met het PHP Superboek, alleen ik kom een paar vraagjes tegen die niet staan uitgelegd (of ik snap de uitleg niet).
Mijn eerste vraag staat op blz 72 en 73 van het hierboven genoemde boek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class clsBD {
   var
$M_conDB;
   const dbName = "MyDB";
   //constructor
   function __construct($_p_sHost, $p_sUser, $p_sPassword) {
     // Open a regular connection
     $this->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
   }

?>

Maar eerste vraag is over: var en const. Ik heb mensen horen praten dat de variabele in een class niet meer aangemaakt moet worden, en wat is 'const dbName' verschil tussen $dbName?
Verder vind ik de regel met $this raar (of ik snap het niet helemaal). Wat doet hij presies met de regel? de regel uitvoeren of opslaan in m_conDB? en waarom moet de regel eronder niet ook met $this->m_conDB staan?

Mijn andere vraag gaat over iets wat verder staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($this->m_conDB){
?>

Wat betekend dat? als de waarde niet leeg is?
 
PHP hulp

PHP hulp

27/05/2026 13:08:07
 
Martijn B

Martijn B

30/12/2006 11:52:00
Quote Anchor link
vraag 1:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
var $blaat; //(PHP4)
public $blaat; //(PHP5)
?>

$blaat is een attribuut van de klasse en is variabel. En is public of wel voor alles en iedereen te gebruiken. Alle atributen van een klasse zouden private moeten zijn als je PHP5 gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
const blaat = 'blaat';
?>

blaat is een constante en kan dus niet meer worden veranderd.

vraag 2:

$this is het object van de klasse. $this zou je kunnen vergelijken met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
= new MijnKlasse;
?>


Alleen kun je met de $this in de klasse alle attributen en methodes benaderen ook al zijn ze private.
In PHP4 is de $this (van de code hierboven) een kopie en in PHP5 is dit een referentie.

vraag 3:

We gaan niet in de if als $this->m_conDB gelijk is aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$this
->m_conDB = false; //of
$this->m_conDB = ''; //of
$this->m_conDB = array(); //of
$this->m_conDB = null; //of
$this->m_conDB = 0; //of
?>


Alle waardes zijn leeg ofwel hebben hetzelfde gedrag als boolean false in een expressie.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 11:56:00
Quote Anchor link
Hoi Zim. Je vragen:

1) var en const
Je kunt een variabele in een class prima aanmaken, waarom niet? Met const definieer je een klasse-constante. Vergelijk hem maar met een define in PHP.

2) die regel met $this is ook raar, want er staat een spelfout in. De hoofdletter M is ineens een kleine letter m geworden. Het keyword this verwijst altijd naar het huidige object, in dit geval de klasse zelf. De functie __construct wordt automatisch uitgevoerd als je een nieuwe klasse aanmaakt. In dit geval maakt hij dus verbinding met je DB.

3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

4) $this->m_conDB bevat de returnwaarde van mysql_connect (regel 8)
Als die connectie fout gaat, retourneert mysql_connect de waarde false. Daar is die if dus voor.
 
Martijn B

Martijn B

30/12/2006 12:02:00
Quote Anchor link
Quote:
3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

Paamayim Nekudotayim veel betere naam :D
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 12:05:00
Quote Anchor link
Ja, die kan ik nooit onthouden. Die Hebreeuwse jongens praten veel te moeilijk :-)
 
Zim Zim

Zim Zim

30/12/2006 12:06:00
Quote Anchor link
Ok, ik ben weer heel wat duidelijker, alleen mijn derde vraag snap ik nog niet helemaal, want Jan ik snap wat de :: betekenen (stond wel uitgelegd), maar ik snap niet waarom je die functie 'los' uitvoer, terwijl je die regel erboven nog $this->m_conDB... staat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

waarom niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     $this->m_conDB =  mysql_select_db(clsDB::dbName);
?>

Ik zie het nu zo, de eerste regel wordt een 'nieuwe' connectie gemaakt (door $this->), en de database wordt in de regel onder geopend, maar waarom moet je ook niet een 'nieuwe' database selecteren?
 
Jelmer -

Jelmer -

30/12/2006 14:15:00
Quote Anchor link
mysql_connect geeft een resource-identifier terug. Of false waneer het is mislukt. Deze resource-identifier hoor je eigenlijk in de volgende functies zoals mysql_select_db & mysql_query te gebruiken. Waarom ze dat in het boek niet snap ik ook niet helemaal.

mysql_select_db geeft alleen maar terug of het gelukt is of niet. Dus om de resource-identifier die je net hebt opgeslagen te vervangen met deze boolean, beetje nutteloos.
 
Zim Zim

Zim Zim

30/12/2006 14:26:00
Quote Anchor link
Ik begin te begrijpen wat je bedoelt.
Ik vond nog een eigennaardigheid in het boek (of dat lijkt mij):
Dit voorbeeld staat op blz 90 van het Superboek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public funtion __construct() {
  $this->m_sTitle= "Titel";
  $this->m_sText= "text van het bericht";
}

?>

Het rare vind ik dat als je een class aanroept, hij eerst de constructor aanroept, en dan worden de variabele m_sTitle gedefinieerde waardes, maar het lijkt mij dat die waardes variabel moeten zijn, anders heeft elk artikel de titel: Titel en tekst "text van het bericht".

Hetzelfde doen ze op blz 75, en dat is eigenlijk nog raardes (lijkt mij):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class clsCalendar {
  var
$m_nDay;
  var
$m_nMonth;
  var
$m_nYear;

  function
__construct() {
      $this->m_nDay = -1;
      $this->m_nMonth = -1;
      $this->m_nYear = -1;
   }

?>

Hierzo worden eerste variabele gedefineerd, en daarna word de contructor aangeroepen en worden de variabele een vaste waarde (-1), of zie ik dat verkeerd?
Gewijzigd op 01/01/1970 01:00:00 door Zim Zim
 
Jelmer -

Jelmer -

30/12/2006 14:32:00
Quote Anchor link
In dat laatste voorbeeld zou het kunnen dat hij later in andere functies die daarna worden aangeroepen die variabelen nog herdefinieert.

In veel talen kan je namelijk niet bij de declaratie van een variabele (regel 2/3/4) al een waarde opgeven, dus moet dat in de constructor. En waarschijnlijk zet hij die 3 eigenschappen op -1 omdat 0 een mogelijk antwoord is, en -1 later herkenbaar is als een fout antwoord waar eventueel makkelijk op gecontroleerd kan worden en waarna een foutmelding kan volgen.

Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
 
Willem vp

Willem vp

30/12/2006 22:17:00
Quote Anchor link
'Jelmer:
Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
Met het gevaar dat ik hier antwoord geef op een retorische vraag: waarschijnlijk heeft de auteur ooit eens gehoord van "Hungarian Notation" en probeert hij dat nu toe te passen.

Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
 
Winston Smith

Winston Smith

31/12/2006 00:11:00
Quote Anchor link
Quote:
Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
afgezien daarvan zou uit de naamgeving van variabelen of properties al duidelijk moeten zijn wat voor type het is, en je kan natuurlijk ook nog templates hebben :)
 
Maarten de Boer

Maarten de Boer

02/01/2007 01:22:00
Quote Anchor link
Toch is het wel makkelijk om bijvoorbeeld zulke namen te hebben "classTest" etc. Voor functies in een class is dit niet nodig natuurlijk :)

Ook voor variabelen kan het handig zijn, zo kunt u bijvoorbeeld als u een bestand aan het doorbladeren bent met fopen "$result = fopen(" etc ... en je wilt ook nog tegelijkertijd wat uit de database halen "$result1 = mysql_query" etc .. dan kan dat behoorlijk verwarrend zijn. Gebruik bijvoorbeeld gewoon "$fileResult = fopen(" en "$sqlResult = mysql_query" etc ... dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.
 
Pim Vernooij

Pim Vernooij

02/01/2007 09:13:00
Quote Anchor link
Voor class namen is het gebruik van dit soort prefixes af te raden imo. Een object steld 'iets' voor. Bijvoorbeeld: $oUser = new User(); Het is duidelijk dat dit een nieuw user object is. Maak je er "new clsUser();" van, dan is die denkwijze meteen weg.
 
Jelmer -

Jelmer -

02/01/2007 09:41:00
Quote Anchor link
Het zieltje van Kasper had ik al eerder op het IRC-kanaal gewonnen, waar ik al jaren het gebruik en de misopvatting dat de HN beter/de beste is bestrijd. ^^,

Maar het was inderdaad een vraag die moest aanzetten tot nadenken. Het antwoord op de vraag zelf wist ik al, heb ik al vaak genoeg moeten aanhoren :)
 
Willem vp

Willem vp

02/01/2007 11:19:00
Quote Anchor link
Quote:
$result = fopen(" etc

Tsja, wat moet ik hierop zeggen? Zelf vind ik $result hier sowieso een verkeerd gekozen naam, omdat je van fopen geen resultaat terugkrijgt, maar een filehandle. Ik zou dan ook eerder kiezen voor $fh, maar omdat ik ooit ben opgegroeid in een C-omgeving, gebruik ik in de praktijk $fp (file pointer).

Bij gebruik van meerdere file pointers tegelijk komt daar dan nog de functie achter te staan: $fpIn, $fpOut, $fpErr, $fpLog, etc. Kort en (m.i.) duidelijk.

Quote:
dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.


Ook hierover verschillen we van mening ;-)

Om terug te komen op je query: stel dat je even later gaat fetchen. Het is dan niet belangrijk om te weten waar je data vandaan komt (database, csv-file, watdanook) maar je wilt wel weten of het bijvoorbeeld een array of een object is.

En nee, $mysqlFetchObjectResult = mysql_fetch_object($sqlResult) vind ik geen goed voorbeeld van een duidelijke naamgeving :)
 



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.