Arraywaarde uit andere class ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

.NET 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 »

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

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 »

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 »
Mark PHP

Mark PHP

30/03/2008 22:30:00
Quote Anchor link
Ik loop al een tijdje tegen het volgende probleem aan: stel ik heb een class waar bv. een configuratie is opgeslagen in een array. In een andere klass wil ik één waarde van die array echo-en. Dat doe ik dus met $class->variabele['array-key']. Echter, PHP haalt dan eerst de $class->variabele (de complete array) op, voor de goede waarde bij de key te zoeken.

Dit kan tot geweldige performanceverlies leiden heb ik al gemerkt, dus er moet een manier zijn om dit te voorkomen. Nu kan het wel door een extra methode in te bouwen, bv. getConf($key), die in class X al de key pakt en returned, maar dat vind ik nogal een lelijke manier.

Als 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
18
<?php
class X {
  public $conf = array('name' => 'Agirre', 'age' => 19);

  //blabla
}

class Y {
  public function __construct() {
    $x = new X();
    echo $x->conf['name'];
    //hierboven wordt eerst $x->conf
    //opgehaald voordat de key 'name'
    //wordt gepakt.


  }
}

?>
Suggesties?
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
PHP hulp

PHP hulp

21/05/2024 19:39:56
 
Stien ss

stien ss

30/03/2008 22:40:00
Quote Anchor link
Wat je kan proberen is de SPL interface ArrayAccess te implementeren in je X class. Dan kan je gewoon echo $x['name']; doen en dan wordt denk ik niet heel de array opgehaald.

Waarom zou je niet getConf ($key) gebruiken, ik denk dat dat toch de beste oplossing is voor jou probleem.

Is het performanceverlies echt zo groot? Kan ik me bijna niet voorstellen.
 
Jurgen assaasas

Jurgen assaasas

30/03/2008 22:42:00
Quote Anchor link
Ik wist niet dat PHP dat deed, lijkt me ook vrij nutteloos je zou een variabel (mits public) gewoon aan moeten kunnen spreken op zijn key als het een array is zonder de key door te lopen.

zoals je zei dus, maar dit lijkt me logischer.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$classA
= new classA();

$classB = new classB($classA->var['id']);

?>


Dit lijkt mij de makkelijkste manier om een variabelen door te geven.
 
Mark PHP

Mark PHP

30/03/2008 22:45:00
Quote Anchor link
Ik zal er even over nadenken. Probleem is dat het goed mogelijk is om meerdere arrays te hebben, bv. configuratie en properties. Dan is ArrayAccess lastig.
Hetzelfde geldt eigenlijk voor zo'n aparte methode, aangezien het een Registry class is (en je dus eigenlijk niet weet wat voor variabelen er zijn opgeslagen).

Over het performance verlies, ik had eerst een class Countries, en daar zaten 200+ landen in zo'n array. Als je dan elke keer de hele array moet ophalen om één land weer te geven, kan het nogal lang duren om er bijvoorbeeld 25 weer te geven (halve seconde).

@Jurgen: gaat denk ik ook niet werken, stel ik moet 25 waarden hebben, dan wordt het wel een lang verhaal.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Jelmer -

Jelmer -

31/03/2008 14:07:00
Quote Anchor link
Volgens mij zit het probleem ergens anders. PHP is slim genoeg om niet zomaar een array te kopiëren. $x->conf[$i] is maar een heel klein beetje langzamer dan $a = &$x->conf; $a[$i]. Waarschijnlijk om de reden dat hij bij de eerste syntax eerst $x in het geheugen opzoekt, en dan pas de array. Bij de tweede is $a de array $x->conf.

Getest met een array van 100.000 strings van ongeveer 900 karakters per item. Met geen van beide manieren duurde het langer dan een tiende seconde om ieder element in de array op die manier te benaderen.

Weet je zeker dat je de array niet 25 keer opnieuw aanmaakt? (oplossing: static keyword gebruiken) Of dat je een bestand met de array 25 maal include?
 
Mark PHP

Mark PHP

31/03/2008 16:08:00
Quote Anchor link
Het zit als volgt:
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
<?php
class Registry {
  private $store = array(
    config => array('host' => 'localhost')
  );


  //constructor etc.

  public function __get($key) {//$key geeft 'config'
    return isset($this->store[$key]) ? $this->store[$key] : false;
  }
}


class Retrieve {
  public function __construct() {
    $registry = new Registry();
    echo $registry->config['host'];
  }
}

?>
Doordat de magic __get 'config' teruggeeft, neem ik aan dat deze de hele array retourneerd.
Toen ik een getCountry() implementeerde in mijn Countries class, was het script namelijk veel en veel sneller.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Jelmer -

Jelmer -

31/03/2008 16:28:00
Quote Anchor link
Ja, geen wonder. Een return-value is normaal inderdaad een kopie. Je kan echter wel afdwingen dat hij gewoon een reference neemt, maar dan moet je wel oppassen dat je geen wijzigingen aan de variabele toepast. Die worden dan namelijk ook in het register doorgevoerd.

En nu ik dit test merk ik ook een merkwaardigheid in mijn versie van PHP. Ik gebruik hierbij jouw code, heb alleen de inhoud van Retrieve aangepast. Namelijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$registry
= new Registry();
$registry->config['host'] = 'Blaat';
var_dump($registry);
?>

verandert het register niet (zoals je zou verwachten). Echter, de volgende code verandert het register bij mij wel. Merk op dat ik $x verder niet eens gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$registry
= new Registry();
$x = &$registry->config['host']; // let op deze
$registry->config['host'] = 'Blaat';
var_dump($registry);
?>

Deze code levert trouwens 2 notices op, "PHP Notice: Indirect modification of overloaded property Registry::$config has no effect" voor regel 3 & 4. Maar blijkbaar heeft het wel degelijk effect... De eerste code levert diezelfde waarschuwing ook op, maar daar klopt hij ook.
 
Mark PHP

Mark PHP

31/03/2008 17:20:00
Quote Anchor link
Mja oke ... een referentie wijst nog steeds naar de hele array, maar een referentie is maar 1 'ding'. Beter dan een volledig kopie, weet alleen niet of het makkelijker werkt.

EDIT: hmm geen idee hoe ik dit goed werkend moet krijgen.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Mark PHP

Mark PHP

02/04/2008 20:49:00
Quote Anchor link
Zou je een voorbeeld kunnen geven van een referentie waarbij geen kopie wordt gemaakt? Ik kom er namelijk niet uit en de pagina wordt steeds slomer...
 



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.