Bug #76114 [Opn->Fbk]: unset deletes too much

From: Date: Mon, 19 Mar 2018 10:47:53 +0000
Subject: Bug #76114 [Opn->Fbk]: unset deletes too much
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-214403@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76114&edit=1

 ID:                 76114
 Updated by:         requinix@php.net
 Reported by:        hgalt at gmx dot net
 Summary:            unset deletes too much
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            opcache
 Operating System:   server 2012 R2
 PHP Version:        7.2.3
 Block user comment: N
 Private report:     N

 New Comment:

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.

Looks fine to me. https://3v4l.org/6iVoU

Are you sure this is related to opcache? What if you turn off optimizations?


Previous Comments:
------------------------------------------------------------------------
[2018-03-19 10:47:00] spam2 at rhsoft dot net

these "structures" are a total mess
why don't you just use print_r() so that it becomes readable?

php > print_r($x);
Array
(
    [1] => Array
        (
            [1] => x
            [2] => y
            [3] => Array
                (
                    [0] => a
                    [1] => b
                )

        )

    [2] => Array
        (
            [0] => x
        )

)

------------------------------------------------------------------------
[2018-03-19 10:41:28] hgalt at gmx dot net

Description:
------------
When I use unset to dele a specific array inside an array, it deletes the specific array and all
array  on the same level behind this specific array.

My structure:
*0: 0: id -> 0
	1: name -> Teig
	2: doing -> 
	*3: 0: q -> 100
		1: u -> g
		2: p -> wheat_flour
	*4: 1:  q -> 100
		1: u -> g
		2: p -> sugar
	*5: 2: q -> 100
		1: u -> g
		2: p -> milk
1: count -> 1
2: uidR -> 2

The star infront of the key says that it is an array.

If I execute 
unset($array[0][1]);
the array *4 will be deleted but also the next one (*5). If after *5 additional arrays would be
follow, these would be also deleted.

I know, that in the past this was working, but I am sorry, I don't know when.



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

$array [0]= ['id' => 0, 'name' => 'Teig', 'doing'
=> 'Test'];
$array[0][0] = ['q' => '100', 'u' => 'g',
'p' => 'wheat_flour'];
$array[0][1] = ['q' => '100', 'u' => 'g',
'p' => 'sugar'];
$array[0][2] = ['q' => '100', 'u' => 'g',
'p' => 'milk'];
$array[] = ['count' => '1', 'uidR' => '2'];

unset($array[0][1]);

Expected result:
----------------
*0: 0: id -> 0
	1: name -> Teig
	2: doing -> 
	*3: 0: q -> 100
		1: u -> g
		2: p -> wheat_flour
	*5: 2: q -> 100
		1: u -> g
		2: p -> milk
1: count -> 1
2: uidR -> 2

Actual result:
--------------
*0: 0: id -> 0
	1: name -> Teig
	2: doing -> 
	*3: 0: q -> 100
		1: u -> g
		2: p -> wheat_flour
1: count -> 1
2: uidR -> 2


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=76114&edit=1


Thread (4 messages)

« previous php.bugs (#214403) next »