php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75426 "Cannot use empty array elements" reports wrong position
Submitted: 2017-10-24 12:20 UTC Modified: 2019-01-02 10:39 UTC
Votes:4
Avg. Score:3.5 ± 0.9
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:1 (50.0%)
From: cweiske@php.net Assigned:
Status: Open Package: Scripting Engine problem
PHP Version: 7.2.0RC4 OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: cweiske@php.net
New email:
PHP Version: OS:

 

 [2017-10-24 12:20 UTC] cweiske@php.net
Description:
------------
If there is a syntax error because there are two consecutive commas in an array, a fatal error is reported:

  PHP Fatal error:  Cannot use empty array elements in arrays in file.php on line 3

The problem is that the line reported is the start of the array definition, not the line at which the error actually is.

This makes it very hard to debug array definitions of 100 lines length.

See https://3v4l.org/Ek6pJ and https://3v4l.org/WJUbZ

Test script:
---------------
<?php
$a = [
    1,
    ,
    3
];

Expected result:
----------------
Line 4 should be reported.

Actual result:
--------------
Line 3 is reported.

Patches

Add a Patch

Pull Requests

Pull requests:

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-11-23 11:06 UTC] andrew dot nester dot dev at gmail dot com
Thanks for pointing this issue! I've just added CR implementing this.
 [2019-01-02 10:39 UTC] nikic@php.net
I've committed a partial fix for this issue at https://github.com/php/php-src/commit/73596c56e7905ce5b7c4f15d551361ee744cad0c. It doesn't actually change anything for the case shown here, but if the array is larger, it will now point to the element before the stray comma.
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Sun Aug 18 06:01:28 2019 UTC