php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77115 The array contains 2 identical keys
Submitted: 2018-11-06 12:56 UTC Modified: 2018-11-06 13:50 UTC
From: boris at korobkov dot su Assigned:
Status: Re-Opened Package: Arrays related
PHP Version: 7.0.32 OS: Ubuntu
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2018-11-06 12:56 UTC] boris at korobkov dot su
Description:
------------
The array contains 2 identical keys.
Reproduced in all PHP 7.*.
Not reproduced in PHP 5.6.

Test script:
---------------
<?php

class A {
    private $foo = 'fooA';
    public function dump() { return get_object_vars($this); }
}

class B extends A {
    public $foo = 'fooB';
}

$b = new B();
$object_vars = $b->dump();
var_dump($object_vars);

unset($object_vars['foo']);
var_dump($object_vars);

unset($object_vars['foo']);
var_dump($object_vars);

Expected result:
----------------
The array contains unique keys only.

Actual result:
--------------
array(2) {
  ["foo"]=>
  string(4) "fooB"
  ["foo"]=>
  string(4) "fooA"
}

array(1) {
  ["foo"]=>
  string(4) "fooB"
}

array(0) {
}

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-11-06 13:04 UTC] nikic@php.net
I've fixed this issue for PHP 7.4 some time ago via https://github.com/php/php-src/commit/4d5d77904e9e4dc52236ec5416d1ddfef9b3911c#diff-5d1661cc2ad170dc8bbe40c80ae75b85. I guess we'll have to backport it now :)
 [2018-11-06 13:37 UTC] bwoebi@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: bwoebi
 [2018-11-06 13:37 UTC] bwoebi@php.net
-Status: Closed +Status: Re-Opened -Assigned To: bwoebi +Assigned To:
 [2018-11-06 13:37 UTC] bwoebi@php.net
Eih, yeah, backporting is possibly a good idea.
 [2018-11-06 13:50 UTC] nikic@php.net
@bwoebi: I don't think we'll want to backport the fix for dynamic properties as it's more intrusive, but the one for declared properties should be relatively self-contained.
 
PHP Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Mon Dec 10 08:01:24 2018 UTC