diff --git a/src/Php/CompilerBase.php b/src/Php/CompilerBase.php index 4aad8283..2c803036 100644 --- a/src/Php/CompilerBase.php +++ b/src/Php/CompilerBase.php @@ -163,6 +163,7 @@ class CompilerBase extends \PhpAot\Core\Translator 'object' => self::TYPE_OBJECT, 'mixed' => self::TYPE_VAR, 'null' => self::TYPE_VAR, + 'any' => self::TYPE_VAR, // callable 类型,可以是字符串、数组、对象 // 1) 'foo' 函数名称字符串, 2) [ $obj, 'bar' ] 对象方法数组, 3) Closure 对象, 4) [ 'class', 'staticMethod'] 类名+静态方法数组 'callable' => self::TYPE_VAR, diff --git a/src/gen_stub.php b/src/gen_stub.php index 0728384a..bcf8cd16 100755 --- a/src/gen_stub.php +++ b/src/gen_stub.php @@ -235,11 +235,15 @@ class SimpleType { } if ($node instanceof Node\Identifier) { - if ($node->toLowerString() === 'array') { + $name = $node->toLowerString(); + if ($name === 'array') { return ArrayType::createGenericArray(); } + if ($name === 'any') { + return new SimpleType('mixed', true); + } - return new SimpleType($node->toLowerString(), true); + return new SimpleType($name, true); } throw new Exception("Unexpected node type"); @@ -264,6 +268,8 @@ class SimpleType { case "never": case "ref": return new SimpleType(strtolower($typeString), true); + case "any": + return new SimpleType('mixed', true); case "array": return ArrayType::createGenericArray(); case "self":