首页 > 解决方案 > 启用 (opcache.so) 扩展后,PHP 的 get_class_vars() 输出无效

问题描述

我有这个简单的代码来演示更新静态值:

<?php

class myClass
{
    // empty static var
    public static $prop1;

}

myClass::$prop1 = array("Hey, I'm setting your value now");
var_dump(myClass::$prop1);

$allVars = get_class_vars( myClass::class ) ;
var_dump ( $allVars );

所以我希望这两个转储都能显示出新的价值。虽然在 (opcache) 未启用时它可以完美运行。但是当启用(opcache)时它会给出一个奇怪的输出..

是否有任何配置对此行为负责?

PHP 7.4.14

1-PHP 7.4.14 没有 opcache.so (OK)

array (size=1) 0 => string '嘿,我现在设置你的值' (length=31)

数组(大小=1)'prop1'

array (size=1)
  0 => string 'Hey, I'm setting your value now' (length=31)

2-PHP 7.4.14 启用了 opcache.so(不好,奇怪)

array(1) { [0]=> string(31) "嘿,我现在设置你的值" }
array(1) { ["prop1"]=> NULL }

你怎么看 ?

标签: phpphp-7opcache

解决方案


推荐阅读