ontkoppelen variabele

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

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 »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Dordrecht zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden 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

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 »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Front-end Developer

Front-end 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 »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »
Hank Noseman

Hank Noseman

18/07/2012 12:55:52
Quote Anchor link
Middels het &-teken kun je in php variabelen aan elkaar koppelen, zie onderstaand voorbeeld.

Nou vroeg ik me af of je een variabele ook weer kunt ontkoppelen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$a = 10;

$b = &$a;

echo $b . "<br>";//b=10

$a = 20;

echo $b . "<br>";//b=20
 
PHP hulp

PHP hulp

23/12/2024 08:03:02
 
- SanThe -

- SanThe -

18/07/2012 13:19:01
Quote Anchor link
Interessante vraag.
Helaas heb ik geen antwoord.
 
Reshad F

Reshad F

18/07/2012 13:22:07
Quote Anchor link
zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$b
= str_split($a);
?>
 
- SanThe -

- SanThe -

18/07/2012 13:25:08
Quote Anchor link
@Reshad: Helaas, werkt niet.
 
Bart V B

Bart V B

18/07/2012 13:28:32
Quote Anchor link
Ik kan me echt op geen enkele manier voorstellen waarom dat je ze weer zou willen ontkoppelen..

Wat je kan doen is de variabele overschrijven met een nieuwe variabele, of proberen met unset() hoewel ik het laatste aan twijfel of dat gaat werken..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$b
=1; $d=2;
$a =& $b;
$c =& $d;
// now a=b=1; c=d=2;
$b =& $c;
// now a=1, b=c=d=2;
?>
 
Kris Peeters

Kris Peeters

18/07/2012 13:34:11
Quote Anchor link
Bekijk dit eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$a
= 10;
$b = &$a;  // b krijgt als waarde het adres van $a
echo $b . "<br>";
$a = 20;
echo $b . "<br>";  // b heeft nog steeds als waarde het adres van $a; dus $b=20
unset($a);         // $a wordt ontkoppeld van zijn eigen adres
$a = 15;            // $a is nu een nieuwe variabele en heeft niets meer te maken met de $a van 3 lijnen geleden
echo $b . "<br>";  // b blijft wijzen naar het origineel, waar $a nog steeds 20 is.
?>


----------

In c (c++) noemt men dit een pointer.
De beste vergelijking die ik ken, is de MS Windows snelkoppeling.

Een snelkoppeling is een bestand. De content van dat bestand is een adres: het adres waar de snelkoppeling naar moet wijzen.

In dit geval:
$b geef je de waarde: het adres van $a.

Je kan het programma zelf verplaatsen; dan wijst die snelkoppeling niet meer naar het programma, maar naar een adres waar waarschijnlijk niets meer staat.
 
Hank Noseman

Hank Noseman

19/07/2012 08:26:27
Quote Anchor link
bedankt voor de reacties, ik ben weer een hoop wijzer geworden :D
 
Hank Noseman

Hank Noseman

23/07/2012 13:04:46
Quote Anchor link
@Kris,

zou het overigens ook zo zijn dat na de unset van $a en het geheugen overschreven wordt, $b deze overschreven waarde aanneemt?
 
Kris Peeters

Kris Peeters

23/07/2012 13:11:13
Quote Anchor link
Ik denk dat het stuk geheugen niet echt wordt vrijgegeven zolang er 1 of meerdere variabelen naar wijzen.
 
Joey Drieling

Joey Drieling

23/07/2012 14:09:11
Quote Anchor link
Ik heb ff een vraag wat is nou het verschil met of zonde het '&' teken er voor? Want bijde neemt hij de waarde over.

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

$a
= 10;

$b = $a; //$b = 10
$c = &$a; //$c = 10

?>
Gewijzigd op 23/07/2012 14:09:44 door Joey Drieling
 
Kris Peeters

Kris Peeters

23/07/2012 14:25:42
Quote Anchor link
Met het &-teken wordt de variabele een referentie naar een adres, naar een andere variabele (een snelkoppeling).


$b = $a; betekent: neem de waarde van $a en steek ze in $b

$c = &$a; betekent dat $c een snelkoppeling naar $a wordt. Wanneer de waarde van $a wordt aangepast, zal die waarde ook mee veranderen als je $c uitleest.

Als je $a verandert en $b uitleest, zal de waarde van $b niet mee aangepast worden.


Dit is vooral handig om te gebruiken in functies.

Een voorbeeld: Let niet te veel op de nutteloosheid van de functie. Let op het feit dat je, buiten de return, nog een waarde uit de functie kan exporteren door een variabele als referentie mee te geven.

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
$errorString
= '';
echo '$errorString voor de aanroep: '. $errorString .'<br>';
$a = gedeeldDoor(15, 0, $errorString) ;
echo '$errorString na de aanroep: '. $errorString .'<br>';


function
gedeeldDoor($teller, $noemer, &$error) {
  if ($noemer == 0) {
    $error = 'Je mag niet delen door nul';
    return false;
  }

  else {
    return $teller/$noemer;
  }
}

?>
 
Hank Noseman

Hank Noseman

30/07/2012 08:17:18
Quote Anchor link
ik zag ook laatst dat je functies by reference hebt, zoals

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function &sayHello()
{
}


alleen snap ik niet helemaal hoe dit zit. Iemand een uitleg?
 
Eddy E

Eddy E

30/07/2012 09:22:24
Quote Anchor link
Kris Peeters op 23/07/2012 14:25:42:
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
$errorString
= '';
echo '$errorString voor de aanroep: '. $errorString .'<br>';
$a = gedeeldDoor(15, 0, $errorString) ;
echo '$errorString na de aanroep: '. $errorString .'<br>';


function
gedeeldDoor($teller, $noemer, &$error) {
  if ($noemer == 0) {
    $error = 'Je mag niet delen door nul';
    return false;
  }

  else {
    return $teller/$noemer;
  }
}

?>


Resultaat: http://codepad.org/inwe8xgX



Maar waarom zou je $b = &$a; gebruiken en niet gewoon $a?
Ik vroeg me af, wat er gebeurt als je $b wijzigt: http://codepad.org/orWPpmlR
Kortom.... $b === $a en blijft dat.
Echt geen blijvende gelijkenis.
Maar wat is dan het voordeel? Behalve 2 waarden uit een functie halen? (Wat ook met global kan)?
Gewijzigd op 30/07/2012 09:26:15 door Eddy E
 
Kris Peeters

Kris Peeters

30/07/2012 10:02:40
Quote Anchor link
Okay, $c = &$a; zomaar los gebruiken, doe ik niet. Ik veronderstel andere mensen ook niet.

Maar in functies is het een ander verhaal.
global zien als een alternatief voor een paramater by reference, vind ik niet volledig eerlijk, zelfs al doen ze het zelfde.

Kwestie van best practice maakt dat veel uit.
Functies moet je functioneel schrijven. Je schrijft ze met de gedachte dat ze hergebruikt worden.

Met global beslis je, van binnenin de functie hoe een variabele er buiten moet heten.
Als je een aantal van zo'n functies in een bibliotheek hebt, moet je al bang beginnen worden om bepaalde namen te geven aan variabelen, anders komen ze in de greep van die functies met global vars.

Met de variabele by ref heb je dit probleem niet. Wie de functie gebruikt, kiest volledig zelf of hij die link maakt en hoe die variabele heet (buiten de functie).

Als je een uitgebreidere funtie schrijft en publiceert, wil je dat, wie ze ook gebruikt, er met zijn poten van af blijft.
Gewijzigd op 30/07/2012 10:03:58 door Kris Peeters
 
Eddy E

Eddy E

30/07/2012 10:51:12
Quote Anchor link
Daar heb je inderdaad wel een goed punt Kris.
Dan is &$iets beter.

Zo zit mysql_error() ook in elkaar zeker? Hij kijkt naar de laaste gemaakte $var uit mysql_query() en gebruikt die in mysql_error()?
Als voorbeeld hé ;).
 
Kris Peeters

Kris Peeters

30/07/2012 11:14:39
Quote Anchor link
Dit laatste weet ik niet. Misschien wel, ja. Hiermee zou het kunnen.
 
Wouter J

Wouter J

30/07/2012 11:40:07
Quote Anchor link
Dat laatste is niet waar. De mysql_error functie kijkt of je een parameter meegeeft. Zo niet dan roept hij MySG(default_link) aan, dit bevat de laatst gebruikte link die aangemaakt is door de php_mysql_set_default_link functie.
Nog een leuk extraatje: mocht de default_link nog niet bestaat dan heeft hij 2 opties: een connectie error teruggeven of aannemen dat deze functie verkeerd is aangeroepen en gewoon false returnen.
Ook leuk is dat deze functie dus helemaal het error bericht zelf niet returned. Het geeft alleen het cijfer terug van de error message. De PHP default error handler zet deze dan om in een error message.


In de PHP broncode wordt overigens heel erg veel met references gewerkt. Bijv. de functie strpos. Deze krijgt alle parameters bij referentie.
 



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.