Bug #74776 [NEW]: undocumented change: PHP 7.1 preserves scope of call_user_func, breaks usage

From: Date: Sun, 18 Jun 2017 13:42:52 +0000
Subject: Bug #74776 [NEW]: undocumented change: PHP 7.1 preserves scope of call_user_func, breaks usage
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-209576@lists.php.net to get a copy of this message
From: iamonyourroof at gmail dot com Operating system: Linux PHP version: 7.1.6 Package: *General Issues Bug Type: Bug Bug description:undocumented change: PHP 7.1 preserves scope of call_user_func, breaks usage Description: ------------ Dear, the following code has a different output on php 7.0.20 vs php 7.1.0. It includes protected variables in the output, which is not what you would expect. It seems like the scope for call_user_func has changed between these php versions. If this change was on purpose, should it not have been documented as an item on the list of incompatible changes? http://php.net/manual/en/migration71.incompatible.php Test script: --------------- <?php namespace crm; class et{ protected $table = "b"; public $field = "d"; private $x = "private!"; public function dump(){ var_dump( call_user_func('get_object_vars', $this) ); } } $et = new et(); echo phpversion()."\n"; $et->dump(); Expected result: ---------------- private/protected vars exposed Actual result: -------------- private/protected vars exposed on php version higher than 7.1 -- Edit bug report at https://bugs.php.net/bug.php?id=74776&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=74776&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=74776&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=74776&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=74776&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=74776&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=74776&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=74776&r=needscript Try newer version: https://bugs.php.net/fix.php?id=74776&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=74776&r=support Expected behavior: https://bugs.php.net/fix.php?id=74776&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=74776&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=74776&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=74776&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=74776&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=74776&r=dst IIS Stability: https://bugs.php.net/fix.php?id=74776&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=74776&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=74776&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=74776&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=74776&r=mysqlcfg

« previous php.bugs (#209576) next »