php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #77135 Extract with EXTR_SKIP should skip $this
Submitted: 2018-11-10 10:27 UTC Modified: -
From: thflori at gmail dot com Assigned:
Status: Closed Package: *General Issues
PHP Version: 7.2.12 OS: Manjaro
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 you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: thflori at gmail dot com
New email:
PHP Version: OS:

 

 [2018-11-10 10:27 UTC] thflori at gmail dot com
Description:
------------
I know that get_defined_vars() is not returning $this but for every developer it feels like a variable that is currently defined inside an object context.

As you can never overwrite $this - even outside an object context it would make sense that the extract function always work as $this is defined and use the appropriate method (skip/prefix).

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

$arr = ['this' => 'hello world'];
extract($arr, EXTR_SKIP);
extract($arr, EXTR_PREFIX_INVALID, 'v_');

var_dump($v_hello === $arr['this']);

Expected result:
----------------
bool(true)

Actual result:
--------------
PHP Fatal error:  Uncaught Error: Cannot re-assign $this in /tmp/test.php:4
Stack trace:
#0 /tmp/test.php(4): extract(Array, 1)
#1 {main}
  thrown in /tmp/test.php on line 4

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-06-07 08:51 UTC] dmitry@php.net
Automatic comment on behalf of dmitry@zend.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=83cdb89f8a6cbc656f2f95aeb6ce1c97691e197f
Log: Fixed bug #77135 (Extract with EXTR_SKIP should skip $this)
 [2019-06-07 08:51 UTC] dmitry@php.net
-Status: Open +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 11:01:29 2024 UTC