Probleem met syntax error: unexpected ')'
De melding komt uit de 'php_error.log' file; het symptoom is dat m'n script zonder verdere melding stopt en een wit scherm produceert.
De betreffende code is dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public function logout()
{
// Unset ALL? session variables
$_SESSION = [];
if(ini_get('session.use_cookies'))
{
$params = session_get_cookie_params();
setcookie(
session_name(),
'',
time() - 42000,
$params['path'],
$params['domain'],
$params['secure'],
$params['httponly'],
);
}
echo 'are we happy?<br>';
Op regel 77 staat alleen dat haakje ');'.
Mijns inziens is er helemaal niks mis met de code, maar de parser heeft een andere mening.
Kent iemand dit verschijnsel?
Het kost een nachtje slapen, maar wanneer ik de komma achter de regel: '$params['httponly']' weg haal. Dan werkt het weer als vanouds.
Is dit één van de 'peculiarities' van PHP?
Edit:
Topictitel aangepast naar wat duidelijks. Hele lappen met errors en paden zijn niet echt interessant. Houd de topictitel voortaan lekker compact.
Gewijzigd op 26/12/2021 00:03:23 door - Ariën -
Toevoeging op 25/12/2021 11:58:19:
Graag even een beknopte titel aangeven.
https://php.watch/versions/8.0/trailing-comma-parameter-use-list (zodat als je op de volgende regel een parameter toevoegt, je niet de regel erboven aan hoeft te passen; dat heeft voordelen bij versiebeheer - als je iemand de "schuld" moet geven dat ie de boel verkloot heeft).
Je draait dus waarschijnlijk een stukje code dat voor PHP 8 bedoeld was op PHP 7.x of ouder.
Merk op: vanaf PHP 8 kan dit: Je draait dus waarschijnlijk een stukje code dat voor PHP 8 bedoeld was op PHP 7.x of ouder.
Bij array's kan een 'trailing comma' trouwens ook.
"Je draait waarschijnlijk een stukje code dat voor PHP 8 bedoeld was op PHP 7.x of ouder."
Dat klopt, ik heb de code van PHPnet geplukt; en ik gebruik versie 7.0.8 op m'n local host.
"Bij array's kan een 'trailing comma' trouwens ook."
Dat brengt mij in verwarring; er staan inmiddels zoveel komma's achter de laatste regel in een $data[] array, dat ik daar echt niet meer naar een oorzaak zocht.
Niettemin. bedankt heren; en fijne kerst dagen.