Bug #74576 [Opn->Fbk]: opcache do not update class constant after uopz_redefine

From: Date: Tue, 03 Oct 2017 16:43:57 +0000
Subject: Bug #74576 [Opn->Fbk]: opcache do not update class constant after uopz_redefine
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-211500@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74576&edit=1 ID: 74576 Updated by: cmb@php.net Reported by: kejinjin at gmail dot com Summary: opcache do not update class constant after uopz_redefine -Status: Open +Status: Feedback Type: Bug Package: opcache Operating System: CentOS7x64 PHP Version: 7.1.4 -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: Are you loading uopz *before* OPcache? Previous Comments: ------------------------------------------------------------------------ [2017-05-12 06:08:02] kejinjin at gmail dot com PS: PHP version is 7.1.4 ------------------------------------------------------------------------ [2017-05-12 05:47:25] kejinjin at gmail dot com Description: ------------ I use uopz_redefine to redefine class constants (uopz called zend_declare_class_constant) when opcache is enabled, I cannot get the new class constant through Foo::BAR. Test script: --------------- <?php class Foo { const BAR = '123'; } var_dump(Foo::BAR);// A1: try to comment this (function () { var_dump(Foo::BAR); // B1: try to comment this uopz_redefine('Foo', 'BAR', '456'); var_dump(Foo::BAR); // B2: compare })(); (function () { var_dump(Foo::BAR); // new scope })(); var_dump((new ReflectionClass('Foo'))->getConstant('BAR')); // also OK var_dump(Foo::BAR); // A2: compare Expected result: ---------------- '123' '123' '456' '456' '456' '456' Actual result: -------------- '123' '123' '123' (it is '456' if line B1 is commented) '456' '456' '123' (it is '456' if line A1 is commented) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74576&edit=1

« previous php.bugs (#211500) next »