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


PHP: Type hinting in namespaces not working?

我试图做一些类型提示与PHP 5.6而使用名称空间,我一直得到这样的错误:

PHP可捕获致命错误:参数1传递给NS'MyClass::__construct()必须是string, string的实例给定的,被叫的/用户/用户名/道路/MyClass.php在第9行中定义/用户/用户名/道路/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
    }
}
?>

所以当我用String类型的

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

出现错误。它也不适用于

public function __construct('string $mystring) {

如何在命名空间中提示基本类型?

在PHP 5.6中不能输入提示字符串。PHP 7中增加了对该特性的支持。

关于PHP函数类型提示的更多信息