In PHP 7: Verbeterde variabele syntax

Toegevoegd door Wouter J, 11 jaar geleden

In PHP 7: Verbeterde variabele syntaxPHP 7 krijgt een uniforme variabele syntax. Dit zorgt ervoor dat PHP meer dingen kan ondersteunen wat betreft het direct gebruiken van return values. Dit is te vergelijken met hoe JavaScript en andere talen dit momenteel al afhandelen.

Vanaf PHP 7 kun je codes als dit uitvoeren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// 2e element in de array die get_all_posts terug geeft
get_all_posts()[1];

// een functie die teruggegeven wordt door foo() aanroepen
foo()();

// een anonymous function aanroepen
(function () {
    // ... hier code met een eigen scope
})();
?>


Door deze veranderingen zijn er wel wat syntaxes die anders werken, zoals $class->$lijst['a']:
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
<?php
// vóór PHP 7
$class = new ...;
$lijst = array('a' => 'foo', '...');

$class->$lijst['a'];
// wordt gezien als $class->foo (dus foo property van $class)

// PHP 7

$class = new ...;
$lijst = 'bar';

$class->$lijst['a'];
// wordt gezien als $class->$lijst en daar de 'a' element van
?>


Deze verandering gaat ervoor zorgen dat in veel gevallen de return value van een functie niet eerst in een variabele opgeslagen hoeft te worden, maar dat deze meteen gebruikt kan worden.

Gerelateerde nieuwsberichten

28/02/2024 LockBit website door politie gekraakt via mogelijk lek in PHP
08/05/2023 PHPhulp verhuisd
21/04/2023 Bug opgelost met traagheid PHPhulp

 

Er zijn 4 reacties op 'In php 7 verbeterde variabele syntax'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


8 jaar geleden
 
0 +1 -0 -1
Backend log: PHP Notice: Undefined index: HTTP_REFERER in /home//blabla//index.php on line 308\n

hoe kan dat ... Undefined index voor
$servHttpRef = $_SERVER['HTTP_REFERER'];

Dit zou toch echter goed moeten werken

zo ook het numeric value $getal=1 of $getal='1';

https://www.google.nl/search?num=100&site=&source=hp&q=php7.1 PHP Warning%3A A non-numeric value encountered

Er zijn nu te veel fouten in PHP7.1 waardoor websites compleet vast lopen..
Willem vp
Willem vp
8 jaar geleden
 
1 +1 -0 -1
HTTP_REFERER heeft niet gegarandeerd een waarde (als je de url zelf hebt ingetikt is er per definitie geen referer), dus die undefined index is een terechte foutmelding. Als je die wilt voorkomen, heeft PHP7 (eindelijk) de Null Coalesce Operator:

$servHttpRef = $_SERVER['HTTP_REFERER'] ?? '[no referer]';
Ozzie PHP
Ozzie PHP
8 jaar geleden
 
0 +1 -0 -1
>> Er zijn nu te veel fouten in PHP7.1 waardoor websites compleet vast lopen..

Omdat jij zelf niet begrijpt hoe iets werkt, zijn het ineens 'fouten'?

Dat is ongeveer hetzelfde als je niet weet hoe je moet schakelen, en vervolgens zegt dat de auto niet werkt.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP JS
PHP JS
8 jaar geleden
 
0 +1 -0 -1
function a()
{
return [1,2,3];
}

echo a()[1];


Dit werkt ook al in eerdere php versies. is dus niks nieuws

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Labels

PHP nieuws opties

 
 

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.