Franco Ponticelli 14 rokov pred
rodič
commit
dfe3afb905
2 zmenil súbory, kde vykonal 9 pridanie a 7 odobranie
  1. 7 3
      std/php/Boot.hx
  2. 2 4
      std/php/_std/Reflect.hx

+ 7 - 3
std/php/Boot.hx

@@ -7,11 +7,15 @@ class Boot {
 	static var skip_constructor = false;
 	static function __init__() : Void {
 		untyped __php__("
+function _hx_is_numeric($v)
+{
+	return is_numeric($v) && !is_string($v);
+}
 function _hx_add($a, $b) {
-	if(is_numeric($a) && is_numeric($b)) {
-		return $a + $b;
-	} else {
+	if (!_hx_is_numeric($a) || !_hx_is_numeric($b)) {
 		return $a . $b;
+	} else {
+		return $a + $b;
 	}
 }
 		

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

@@ -38,10 +38,8 @@
 	}
 
 	public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
-		if(__call__("is_string", o) && !__call__("is_array", func)) {
-			if(args.length == 0) return __call__("call_user_func", field(o, func));
-			else if(args.length == 1) return __call__("call_user_func", field(o, func), args[0]);
-			else return __call__("call_user_func", field(o, func), args[0], args[1]);
+		if (__call__("is_string", o) && !__call__("is_array", func)) {
+			return __call__("call_user_func_array", field(o, func), __field__(args, "»a"));
 		}
 		return __call__("call_user_func_array", __call__("is_callable", func) ? func : __call__("array", o, func), (null == args ? __call__("array") : __field__(args, "»a")));
 	}