Property aanroepen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

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 »

(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 »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. 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. Tevens

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

.NET developer

Functie Als .NET developer wordt jij onderdeel van ons ICT team. In dit multidisciplinaire team ben jij samen met onze senior .NET ontwikkelaar en medior .NET ontwikkelaar verantwoordelijk voor ons ERP systeem. In dit systeem (Navision) ga jij leren ontwikkelen. Wij bieden jou dan ook een gedegen opleiding aan, samen met de ondersteuning van onze Senior .NET developer. Daarnaast ga jij aan de slag met ons portaal geschreven in Sharepoint. Verder ben jij verantwoordelijk voor EDI verkeer en het ontwikkelen binnen het ERP systeem en andere toepassingen en rapportages. Van jou wordt verwacht dat jij het proces goed leert kennen

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »
Ozzie PHP

Ozzie PHP

24/01/2023 22:35:31
Quote Anchor link
Ik vraag me iets af. Als je binnen een method meerdere keren dezelfde property aanroept, biedt het dan een voordeel om die property binnen die method in een variabele op te slaan? Met voordeel bedoel ik, is het efficiënter? Of maakt het weinig verschil?

Je kunt dus dit doen:

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

public function example() {
  $this->foo->doThis();
  $this->foo->doThat();
  if ($this->foo->count() > 5) {
    echo 'okay!';
  }
}


?>

Of dit:

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

public function example() {
  $foo = $this->foo;
  $foo->doThis();
  $foo->doThat();
  if ($foo->count() > 5) {
    echo 'okay!';
  }
}


?>

Maakt het iets uit?
Gewijzigd op 24/01/2023 22:36:38 door Ozzie PHP
 
PHP hulp

PHP hulp

27/05/2026 02:32:31
 
Jan Koehoorn

Jan Koehoorn

25/01/2023 08:04:49
Quote Anchor link
Deze geeft minimale verschillen, en het is ook niet steeds dezelfde methode die sneller is:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
$error_reporting_level
= E_ERROR | E_WARNING;

error_reporting($error_reporting_level);

$composer_autoload = __DIR__ . '/vendor/autoload.php';

if (file_exists($composer_autoload)) {
    require_once $composer_autoload;
}


class Foo
{
    public function doThat()
    {

        //
    }

    public function doThis()
    {

        //
    }

    public function printMe()
    {

        return 10;
    }
}


class Object1
{
    public $foo;

    public function __construct($foo)
    {

        $this->foo = $foo;
    }


    public function example1()
    {

        $this->foo->doThis();
        $this->foo->doThat();

        if ($this->foo->printMe() > 5) {
            echo 'ok';
        }
    }


    public function example2()
    {

        $foo = $this->foo;
        $foo->doThis();
        $foo->doThat();

        if ($foo->printMe() > 5) {
            echo 'ok';
        }
    }
}


$foo = new Foo;
$obj = new Object1($foo);

$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
    $obj->example1();
}

$stop = microtime(true);
dump($stop - $start);

$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
    $obj->example2();
}

$stop = microtime(true);
dump($stop - $start);
?>
Gewijzigd op 25/01/2023 08:06:20 door Jan Koehoorn
 
Ozzie PHP

Ozzie PHP

25/01/2023 10:15:24
Quote Anchor link
Dankjewel Jan!

Ik heb zelf ook even getest met jouw voorbeeld en het gaat inderdaad om minimale verschillen. Als je het aantal aanroepen per method ophoogt, dan zie je dat de 2e methode met de gekopieerde variabele (meestal) net iets sneller is. Het gaat dan uiteraard om micro-optimalisatie.

Ik was hier wel nieuwsgierig naar. Het scheelt dus niet veel, maar toch iets. Je zal er de oorlog niet mee winnen, maar als je dus een property binnen een method meerdere keren aanroept, kan het in ieder geval geen kwaad om een lokale variabele te gebruiken.
 
Ward van der Put
Moderator

Ward van der Put

25/01/2023 19:39:18
Quote Anchor link
Ozzie PHP op 24/01/2023 22:35:31:
Als je binnen een method meerdere keren dezelfde property aanroept, biedt het dan een voordeel om die property binnen die method in een variabele op te slaan?


Ik denk dat sommige Preciezen met opgeheven vinger naar het single-responsibility principle (SRP) zouden wijzen omdat zo'n methode al gauw te veel doet.

Ozzie PHP op 24/01/2023 22:35:31:
Je kunt dus dit doen:

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

public function example() {
  $this->foo->doThis();
  $this->foo->doThat();
  if ($this->foo->count() > 5) {
    echo 'okay!';
  }
}


?>


Een methode in een klasse is geen applicatie, maar daar lijkt dit voorbeeld wel op.

Gelukkig reken ik mezelf meer tot de Rekkelijken. ;-) Als je performance belangrijk vindt, stap dan om te beginnen af van naïeve getters en setters. De snelheidswinst van directe toegang tot class properties is veel groter.
 
Ozzie PHP

Ozzie PHP

26/01/2023 14:35:17
Quote Anchor link
>> stap dan om te beginnen af van naïeve getters en setters.

Bedoel je daarmee om met public properties te werken?
 
Ward van der Put
Moderator

Ward van der Put

26/01/2023 15:52:56
Quote Anchor link
Ja.
 
Ozzie PHP

Ozzie PHP

26/01/2023 16:04:24
Quote Anchor link
Oké, maar daarmee introduceer je weer mogelijke andere nadelen. Dat is dus een beetje stuivertje wisselen.
 
Ward van der Put
Moderator

Ward van der Put

26/01/2023 16:42:28
Quote Anchor link
Met variabelen lokaal dupliceren introduceer je ook een nadeel: je verbruikt meer geheugen. Als je dit met een grote array doet, kan het zelfs fataal aflopen.

Je kunt deze trade-offs eigenlijk niet (gemakkelijk) eerlijk testen. Je gooit er nu meer geheugen tegenaan voor de snelheidswinst, maar dat is nadelig voor processen die je buiten de test laat. Eén proces voor één client wordt sneller, maar in een multithreaded multiprocessing omgeving met meerdere clients betaal je de prijs dan elders.

Er zijn bijvoorbeeld "oplossingen" die WordPress sneller maken: bij 1 of 2 bezoekers wordt de snelheid dan bijvoorbeeld meer dan verdubbeld, maar bij 10 of meer gelijktijdige bezoekers stort het kaartenhuis al in.
 
Ozzie PHP

Ozzie PHP

26/01/2023 17:18:13
Quote Anchor link
>> Met variabelen lokaal dupliceren introduceer je ook een nadeel: je verbruikt meer geheugen.

Eens. De snelheidswinst is ook niet bepaald spectaculair te noemen. Wellicht merk je er iets van bij een miljoen aanroepen, maar dat is in de praktijk niet realistisch.
 

26/01/2023 21:09:37
Quote Anchor link
Quote:
Als je binnen een method meerdere keren dezelfde property aanroept, biedt het dan een voordeel om die property binnen die method in een variabele op te slaan? Met voordeel bedoel ik, is het efficiënter?

Het antwoord is ja, het is efficiënter.

Door $this->foo op te slaan in een tijdelijke variabele $foo voorkomt je dat PHP elke keer een extra lookup moet doen naar het geheugenadres dat je eigenlijk wilt gebruiken. Ten koste van een extra pointer, dat wel. Hoe vaker je het geheugen benadert, via de property of een method, hoe meer je bespaart.
Een plek waar ik het gebruikte was in een HTML5-object dat een DOM-object extends.

Natuurlijk moet je wel opletten dat je alleen de pointer kopieert, en niet een heel object waar Ward voor waarschuwt. Dus geen 'deep copy', je wilt alleen maar de 'reference' kopiëren. Bijvoorbeeld met een array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$this
->foo = [1, 2];
$foo = $this->foo;  // deep copy
$foo[0] = 2;  // verandert alleen $foo
var_dump($foo);
$foo = &$this->foo;  // by reference
$foo[0] = 2;  // verandert ook $this->foo
var_dump($foo);
?>

Hoewel het voor zich zou moeten spreken, zet ik het er voor de zekerheid toch maar even bij.

Toevoeging op 26/01/2023 21:15:43:

Quote:
Met variabelen lokaal dupliceren introduceer je ook een nadeel: je verbruikt meer geheugen.

In dit geval gaat het om één geheugen pointer per variabele.
Ik heb het niet gecontroleerd voor PHP als geïnterpreteerde taal, maar normaal gesproken is een pointer gelijk aan de bitbreedte van je systeem. Een 64-bit machine gebruikt dan 8 bytes per pointer. Dat is echt geen probleem voor de hedendaagse machines met gigabytes aan werkgeheugen.
 
Ozzie PHP

Ozzie PHP

26/01/2023 22:48:16
Quote Anchor link
Hmmm, nu volg ik 'm niet meer helemaal. Als voorbeeld: stel je hebt een object en binnen dat object moet je database-bewerkingen kunnen uitvoeren. Je hebt een of andere database controller class gemaakt die je als property binnen het object instelt.

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

class Foo {

private $db;

public function bar($id) {
  $db = $this->db;
  $db->setSql('SELECT ...');
  $db->setParam('id' => $id);
  $result = $db->execute();
  return $result;
}

}


?>

In dit voorbeeldje spreek ik 3 keer de database controller class aan. Ik sla die class op in de lokale variabele $db. Is die $db nu een pointer naar $this->db of is het een kopie van de database controller class? Ik zou denken dat laatste. Zodra de method is uitgevoerd, zou $db volgens mij weer opgeschoond moeten worden en is het geheugen weer leeg. Als ik by reference gebruik, dan verwijs ik toch nog steeds naar dezelfde pointer? Zou het dan juist niet performance kosten? Ik creëer dan namelijk een extra variabele, en bij iedere aanroep van die variabele moet de oorspronkelijke pointer (de class property) worden opgezocht zou ik denken.

Toevoeging op 27/01/2023 00:14:59:

UPDATE:

@Ward

>> Met variabelen lokaal dupliceren introduceer je ook een nadeel: je verbruikt meer geheugen.

Het lijkt erop dat als ik een variabele lokaal dupliceer het toch geen kopie betreft (en waarschijnlijk dus ook niet een verdubbeling van geheugen).

Ik heb hier een testje gemaakt met de onderstaande 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
33
34
35
36
<?php

class Bar {
    
    private $msg;
    
    public function test($msg) {
        $this->msg = $msg;
    }

    
    public function shout() {
        echo $this->msg;
    }
    
}


class Foo {
    
    private $bar;
    
    public function __construct($bar) {
        $this->bar = $bar;
    }

    
    public function say($msg) {
        $bar = $this->bar;
        $bar->test($msg);
        $this->bar->shout();
    }
    
}


$test_me = new Foo(new Bar);
$test_me->say('ha ha');

?>

Kijk naar de method 'say' in de class 'Foo'.

Ik kopieer hier d.m.v. $bar = $this->bar een class property naar een lokale variabele. Via deze lokale variabele stel ik de message ($msg) in. Vervolgens gebruik ik de class property (dus niet de lokale variabele) om de $msg weer te geven. Dat blijkt gewoon te werken. Klik hier voor het voorbeeld.

Blijkbaar verwijzen $bar en $this->bar naar hetzelfde object en wordt er dus helemaal niks gekopieerd. Of zie ik het nu verkeerd?
 
Ward van der Put
Moderator

Ward van der Put

27/01/2023 07:50:41
Quote Anchor link
$this->bar is hier inderdaad géén object maar een referentie (een reference of alias). Met $bar = $this->bar dupliceer je de referentie, niet het object.

Dat is anders wanneer je werkt met primitieven zoals arrays. Bijvoorbeeld na $server = $_SERVER is $server een complete array, geen referentie.

Als je wilt weten hoe codefragmenten omgaan met geheugengebruik, kun je dat met memory_get_usage() doormeten.
 
Ozzie PHP

Ozzie PHP

27/01/2023 09:41:26
Quote Anchor link
Kijk zo, wordt deze discussie (voor mij) steeds zinvoller. Dus met een lokale variabele dupliceer ik de referentie. Dat is goed om te weten.

N.a.v. jouw eerdere opmerking had ik al getest met memory_get_usage echter leverde dat (eindstand minus beginstand) telkens 0 op.

De vraag is nu wel ...

Ik kopieer dus via de lokale variabele de referentie naar een object. Toch werkt die lokale variabele iets sneller dan de class property. Ik ben wel benieuwd hoe dat dan kan. Is die lokale variabele een pointer naar de class property die naar het object verwijst? Of verwijst die lokale variabele rechtstreeks naar het object. Ik vermoed dan het laatste en dat zou ook de (zeer minieme) snelheidswinst kunnen verklaren.

Maar als ik het dus goed begrijp (ik hoor graag of dat mijn conclusie terecht is) kost het gebruik van een lokale variabele indien het gaat om een class property die verwijst naar een object géén extra significant geheugenverbruik, omdat het een pointer betreft naar hetzelfde object. Bij meerdere aanroepen binnen 1 method verlopen de aanroepen naar hetzelfde object via een lokale variabele ietsje sneller. Dus het kan zeker geen kwaad om bij meerdere aanroepen binnen 1 method gebruik te maken van een lokale variabele.
Gewijzigd op 27/01/2023 09:41:54 door Ozzie PHP
 

27/01/2023 10:15:46
Quote Anchor link
Het klopt wat je zegt Ward.
Maar wat ik (en anderen) missen is de logica van PHP waarom een array wel 'by value' wordt gekopieerd. Een array is immers geen primitief type:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump(is_scalar(array()));  // geeft false
?>

Gezien dat PHP afstamt van C, moet je het toch met me eens zijn dat dit gedrag onlogisch is. Scalars zijn primitieve typen, waarbij de value zo klein is dat het in een CPU register past, net als pointers (die op hun beurt weer geen PHP references zijn). Die values worden direct gekopieerd. In C geldt dit niet voor arrays en zelfs niet voor strings. Maar in PHP wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$a
= "Test";
$b = $a;  // by value
$b .= ' 2';
var_dump($a);  // "Test"
$b = &$a;  // by reference
$b .= ' 2';
var_dump($a);  // "Test 2"
?>

PHP verbergt standaard vrij veel voor de programmeur, waardoor programma's al snel minder efficiënt worden dan ze zouden kunnen zijn. Het voorkomt ook fouten, vooral als programmeurs niet helemaal op de hoogte zijn van de details. Maar PHP zit er vol mee waardoor het veel minder simpel is dan het lijkt.
Gewijzigd op 27/01/2023 10:18:01 door
 



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.