PHP:命名空间中的类型提示不起作用?

时间:2015-09-17 14:15:42

标签: php type-hinting

我在使用命名空间时尝试使用PHP 5.6进行某种类型的提示,并且我不断收到这样的错误:

  

PHP Catchable致命错误:参数1传递给   NS \ MyClass :: __ construct()必须是string,string的实例   给予,召唤   /Users/username/path/MyClass.php   在第9行并在中定义   /Users/username/path/MySubClass.php   在第52行

代码基本上如下所示:

<?php namespace NS;

class MySubClass extends MyClass {
    public function __construct(string $mystring) {
        parent::__construct($mystring);
    }
}

?>

<?php namespace NS;

class MyClass {
    public function __construct() {
        // do stuff
    }
}

?>

所以当我用类似

的字符串调用子类的构造函数时
$x = new \NS\MySubClass("hello");

出现错误。 它也不适用于

public function __construct(\string $mystring) {

如何在命名空间中键入基本类型?

1 个答案:

答案 0 :(得分:3)

在PHP 5.6中无法输入提示字符串。 PHP 7中添加了对此功能的支持。

More info on typehinting for functions in PHP.