Browse Source

possible fix for PHP 5.2 properties

Simon Krajewski 13 years ago
parent
commit
d49673dcf7
1 changed files with 4 additions and 2 deletions
  1. 4 2
      std/php/_std/Reflect.hx

+ 4 - 2
std/php/_std/Reflect.hx

@@ -40,7 +40,8 @@
 	public static function getProperty( o : Dynamic, field : String ) : Dynamic {
 		if (null == o) return null;
 		var cls : String = Std.is(o, Class) ? untyped __php__("$o->__tname__") : untyped __call__("get_class", o);
-		if (untyped __php__("$cls::$__properties__ && isset($cls::$__properties__['get_'.$field]) && ($field = $cls::$__properties__['get_'.$field])"))
+		var cls_vars : php.NativeArray = untyped __call__("get_class_vars", cls);
+		if (untyped __php__("isset($cls_vars['__properties__']) && isset($cls_vars['__properties__']['get_'.$field]) && ($field = $cls_vars['__properties__']['get_'.$field])"))
 			return untyped __php__("$o->$field()");
 		else
 			return untyped __php__("$o->$field");
@@ -49,7 +50,8 @@
 	public static function setProperty( o : Dynamic, field : String, value : Dynamic ) : Void untyped {
 		if (null == o) return null;
 		var cls : String = Std.is(o, Class) ? untyped __php__("$o->__tname__") : untyped __call__("get_class", o);
-		if (untyped __php__("$cls::$__properties__ && isset($cls::$__properties__['set_'.$field]) && ($field = $cls::$__properties__['set_'.$field])"))
+		var cls_vars : php.NativeArray = untyped __call__("get_class_vars", cls);
+		if (untyped __php__("isset($cls_vars['__properties__']) && isset($cls_vars['__properties__']['set_'.$field]) && ($field = $cls_vars['__properties__']['set_'.$field])"))
 			return untyped __php__("$o->$field($value)");
 		else
 			return untyped __php__("$o->$field = $value");