referentie array/object

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Senior PHP developer met ambities tot Software Arc

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

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 voor het financiele domein 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

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in de regio van Bergen op Zoom ben je als PHP Developer niet alleen gefocust op het ontwikkelen van Software. Daarnaast ben je ook voortdurend bezig met het zoeken naar nieuwe mogelijkheden en innovaties die essentieel kunnen zijn voor de efficiëntie van software ontwikkeling. Je deelt veel kennis en informatie met het team en ontvangt deze dan ook graag terug. Techstack: PHP, Symfony & mySQL. Bedrijfsprofiel Deze uitdagende opdrachtgever is ruim 20 jaar actief in de regio Bergen op Zoom. Het vooruitstrevende team staat de hele dag voor je klaar om je te helpen en ondersteunen.

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Senior Javascript developer

Functie Het platform is gebouwd in een moderne JavaScript stack, die gebruikt maakt van:  React.js  Redux  TypeScript  Node.js  Google Cloud functions (node.js)  Semantic UI Alle code wordt getest en beoordeeld door collega developers. De continuous integration pipeline maakt het mogelijk om elke dag waarde te leveren aan hun klanten. Het ontwikkelproces is pragmatisch en gebaseerd op Scrum. Wat je zult doen: Ten eerste kun je nadrukkelijk jouw eigen stempel drukken op de technologie, het product en de cultuur van het bedrijf. Je bent bezig met het uitwerken van de architectuur van nieuwe functionaliteiten op

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

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 »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

30/10/2013 20:23:33
Quote Anchor link
Een vraagje. Stel we hebben deze code:

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
<?php
class A {

  private $foo;

  public function __construct($foo) {
    $this->foo = $foo;
    $b         = new B($this->foo);
  }

}


class B {

  private $foo;

  public function __construct($foo) {
    $this->foo = $foo;
  }

}


$array = array('foo' => 'foo', 'bar' => 'bar');

// SITUATIE 1:
$a = new A($array);

// SITUATIE 2:
$object = (object) $array;
$a      = new A($object );

?>

Klopt het dat in situatie 1 zowel class A als class B een eigen afzonderlijke "kopie" (property) opslaan van $array?

En klopt het dat er in situatie 2 slechts 1 versie van $array is (het object), en dat de class-properties in class A en B slechts pointers zijn naar $array (het object)?
Gewijzigd op 30/10/2013 20:24:50 door Ozzie PHP
 
PHP hulp

PHP hulp

27/11/2024 21:43:58
 
Wouter J

Wouter J

30/10/2013 20:33:16
Quote Anchor link
Ja, dit klopt. En welkom in de vage wereld van PHP! Alles is zonder reference, behalve als een functie van binnenuit aangeeft dat het met reference moet, met als uitzondering dat objecten altijd by reference doorgegeven worden.
 
Ozzie PHP

Ozzie PHP

30/10/2013 20:36:07
Quote Anchor link
Aha... oke :)

Maareh... ik heb dus een array met informatie die ik door moet geven via een paar classes. Maar om te voorkomen dat ik dan meerdere kopieën krijg, kan ik dan beter die array in het begin even omzetten naar een object? Of is dat een rare gedachte?
 
Wouter J

Wouter J

30/10/2013 20:48:01
Quote Anchor link
Waarom wil je niet meerdere kopiën?
 
Ozzie PHP

Ozzie PHP

30/10/2013 20:50:22
Quote Anchor link
Ik heb in dit specifieke geval maar 1 versie nodig en niet meerdere kopieën. Als ik meerdere kopieën heb, dan neemt het (in deze specifieke situatie) alleen maar onnodig geheugen in beslag. Vandaar dat ik dus dacht om er een object van te maken. Wat vind jij van dat idee?
 
Wouter J

Wouter J

30/10/2013 20:51:35
Quote Anchor link
ohnneeee... onnodig geheugen. Ik haak af van deze discussie...
 
Ozzie PHP

Ozzie PHP

30/10/2013 20:53:59
Quote Anchor link
Is gewoon een gerechtvaardigde vraag hoor Wouter. Hoef je niet meteen af te haken als ik het woordje "geheugen" laat vallen. Dat zou een zwaktebod zijn en zo ken ik jou niet.

De vraag is heel simpel... waarom zou je het niet doen? IK heb de array in dit geval maar 1x nodig (omdat die bewerkt moet worden). Waarom zou ik er dan meerdere kopieën van opslaan? Geef mij maar 1 goede reden?
 
Wouter J

Wouter J

30/10/2013 20:58:59
Quote Anchor link
Omdat ik niet wil dat de array veranderd in method A als method B er iets anders mee gaat doen. Wat ik meegeef aan een method moet ik zeker weten. Wat een method er dan zelf mee gaat doen is aan die method. Tevens kan je niet on-call een argument by-reference meegegeven, maar moet je dit in de method definitie doen. Waardoor de method altijd by-reference callen gebruikt.

Voorbeeldje:
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
<?php
function junk(&$a) {
    $a = 'hehehe, ik ga dit scriptje lekker verpesten';

    return true;
}

function
first(&$a) {
    return $a[0];
}


$array = str_split('foobar');

junk($array);

echo first($array); // ERROR, cannot get element [0] from string
?>


En daarnaast kun je nu ook nooit meer first(array(1,2,3)) doen.

En als laatst is by-reference vanuit een functioneel oogpunt heeeel erg fout.
 
Ozzie PHP

Ozzie PHP

30/10/2013 21:09:02
Quote Anchor link
Kijk, nu kom je met argumenten ;)

Ik snap wat je bedoelt. Nu gaat het in dit geval puur om een "doorgeefluik". De ene class geeft de array door aan een andere, en alleen de laatste class doet er uiteindelijk iets mee. Maar goed, ik snap wel wat je bedoelt. Het alternatief om te voorkomen dat ik onnodig veel kopieën maak, is dat ik de class property unset nadat ik deze heb doorgegeven aan de volgende class, maar dat is ook weer zoiets... ik weet niet wat dan beter is??
 
Ward van der Put
Moderator

Ward van der Put

30/10/2013 21:24:43
Quote Anchor link
Deze ...
Ozzie PHP op 30/10/2013 20:36:07:
Maareh... ik heb dus een array met informatie die ik door moet geven via een paar classes.

... plus deze ...
Ozzie PHP op 30/10/2013 21:09:02:
Nu gaat het in dit geval puur om een "doorgeefluik". De ene class geeft de array door aan een andere, en alleen de laatste class doet er uiteindelijk iets mee.

... moet je misschien omdenken. Je verkast, als ik het zo lees, kennelijk nogal wat data tussen klassen die helemaal niets met die data kunnen, moeten of willen. Pas aan het einde van de rit heb je beet.
Gewijzigd op 30/10/2013 21:27:41 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

30/10/2013 21:35:28
Quote Anchor link
Ward, om het wat concreter te maken... ik heb een kernel class. Aan die class geef ik de global data mee. Die global data wil ik uiteindelijk in een service zetten, maar dat doe ik weer via een aparte class. Vandaar dat ik de data dus moet "doorgeven". Ik zou niet weten hoe ik dat anders zou moeten doen.
 
Ward van der Put
Moderator

Ward van der Put

30/10/2013 21:53:02
Quote Anchor link
Dat is inderdaad verhelderend :-) Juist een kernel moet een strenge taakverdeling toepassen. Dat gaat ook wel iets verder dan voor "doorgeefluik" spelen. De kernel zou moeten begrijpen: data x is voor A en data y is voor B.

Overigens is "kernel" wel een nogal aan inflatie onderhevige term. Je bent immers geen besturingssysteem aan het programmeren... Als je het ding nu een "front controller" of een "dispatcher" noemt, wordt de taakopvatting veel concreter: de juiste data naar de juiste service doorgeven.
 
Ozzie PHP

Ozzie PHP

30/10/2013 21:58:35
Quote Anchor link
Ik noem het zelf een processor :) (de class die het request processt) Alleen die naam wordt volgens mij door niemand gebruikt, dus noem ik het hier maar Kernel :)

Maar goed, nu je weet waar het om gaat... wat zal ik dan doen? Die array omzetten in een object zodat er niet telkens verschillende kopieën worden opgeslagen? (zie het voorbeeld in mijn allereerste post), of zal ik iedere keer nadat ik de array heb doorgegeven de class property unsetten? Dus zoiets:

$foo = new Foo($this->array);
unset($this->array);
 
Wouter J

Wouter J

30/10/2013 22:05:20
Quote Anchor link
Ward, kernel is de naam die ook gebruikt wordt door Symfony en het is gewoon te gebruiken.

Ozzie, waarom geef je waardes aan de kernel mee? Hier heeft de kernel niks mee te maken. De enige waarde die de kernel moet krijgen is de request informatie.
 
Ward van der Put
Moderator

Ward van der Put

30/10/2013 22:09:13
Quote Anchor link
Je denkt misschien te veel in termen van een echter kernel. Dan kun je data inderdaad distribueren met multitasking en multithreading, en dan heb je ineens vier processor cores die sleutelen aan dezelfde taak. Dat is te veel eer voor PHP.

Maar concreet... Ik zou de array omzetten in meerdere kleine objecten die gericht worden verwerkt door specifieke services. Zo werken de meeste PHP-kernels omdat dit de meest efficiënte en vooral de best schaalbare en distribueerbare oplossing is. De kernel/controller/processor/dispatcher/whatsinaname blijft daarbij in controle, maar doet weinig meer dan taken delegeren.
Gewijzigd op 30/10/2013 22:10:51 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

30/10/2013 22:12:06
Quote Anchor link
>> Ozzie, waarom geef je waardes aan de kernel mee? Hier heeft de kernel niks mee te maken. De enige waarde die de kernel moet krijgen is de request informatie.

Maar dat is ook precies wat ik bedoel! Het gaat om de request informatie, alleen stop ik die data in 1 array.

$array = ['cookie' => $_COOKIE, enz.];
$kernel = new Kernel($array);
 
Ward van der Put
Moderator

Ward van der Put

30/10/2013 22:24:55
Quote Anchor link
Als je dit wilt doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$controlFreak
= array(
    'cookie' => $_COOKIE,
    'get'    => $_GET,
    'post'   => $_POST,
    'server' => $_SERVER
);
?>


... en die array ook nog doorgeeft aan verschillende controllers, dan kun je beter een eigen versie van PHP programmeren.

Maar even meer concreet: je doet hier niets anders dan overladen. Je vult namelijk een array met omgevingsvariabelen die worden ingesteld, gereguleerd en gecontroleerd door (meestal) Apache en PHP.
Gewijzigd op 30/10/2013 22:25:19 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

30/10/2013 22:29:13
Quote Anchor link
>> ... en die array ook nog doorgeeft aan verschillende controllers, dan kun je beter een eigen versie van PHP programmeren.

Wat bedoel je hiermee Ward? Je bedoelt dat jij in je code gewoon $_COOKIE, $_SERVER enz. gebruikt?

Ik snap (de ironie in) je opmerking even niet. Ik geef gewoon de globals mee, zodat ik daarmee een request service kan opbouwen, waardoor ik straks bijv. dit kan doen:

$container->get('request')->getCookie()->get('foo');

Wat is daar volgens jou mis mee? Wat heeft dat met controlfreak te maken??? Ik kan je echt even niet volgen nu.
 
Wouter J

Wouter J

30/10/2013 22:33:07
Quote Anchor link
Request data in een array? Waar is het Request object gebleven?
 
Ozzie PHP

Ozzie PHP

30/10/2013 22:44:40
Quote Anchor link
Ik moet de request data toch doorgeven aan het request object? Dat doe ik dus middels die array. Die array geef ik aan het request object. Klopt toch? Zo heb je het mij zelf ooit uitgelegd.

@Ward: ik hoop dat je nog even een reactie geeft, want ik snap niet wat je bedoelde.
 
Wouter J

Wouter J

30/10/2013 23:26:01
Quote Anchor link
Je geeft ze aan de request doormiddel van argumenten, niet met een array.

En daarnaast krijgt de kernel een request object, deze moet hij niet zelf aanmaken.
 

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.