- $p = array_keys($a);
- foreach ($p as $i => $k) {
- if (isset($k[0]) && "\0" !== $k[0] && !$reflector->hasProperty($k)) {
- $p[$i] = self::PREFIX_DYNAMIC.$k;
+ static $publicProperties = array();
+
+ $i = 0;
+ $prefixedKeys = array();
+ foreach ($a as $k => $v) {
+ if (isset($k[0]) ? "\0" !== $k[0] : \PHP_VERSION_ID >= 70200) {
+ if (!isset($publicProperties[$class])) {
+ foreach (get_class_vars($class) as $prop => $v) {
+ $publicProperties[$class][$prop] = true;
+ }
+ }
+ if (!isset($publicProperties[$class][$k])) {
+ $prefixedKeys[$i] = self::PREFIX_DYNAMIC.$k;
+ }