Arraywaarde uit andere class ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

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 »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »

Software Developer Java

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 »

E-Identity Developer met Projectleider Kwaliteiten

Functieomschrijving Voor de kamer van koophandel zijn we op zoek naar een E-Identity developer met projectleider kwaliteiten. Voor deze opdracht zoekt KVK een Informatieanalist met Technisch Projectleider en ICT developer kwaliteiten, met kennis van E-identity. We zoeken in de breedte en niet specifiek in de diepte qua skillset. Een Junior Projectmanager, een Junior Informatieanalist, een Junior Developer (full stack), een Junior Designer en een Junior ICT architect ineen, met een sterk gevoel van stakeholder management en planning vaardigheden. Door de internationale setting, én de realisatie van ontsluiting van en naar basisregisters toe zijn wij op zoek naar enige ervaring binnen

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

.NET Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

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 »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

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

26/04/2024 11:43:19
 
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.