从函数中指定 return 类型

Specifying return type from function

是否可以从函数return特定类型class?

class barCl {
    function _construct() {
    }
}

function fooBar() {
    return (barCl) new barCl;
         //^^^^^^^
}

因为你已经这样做了,你可以像这样投射它:

(在 php 中显式设置变量的类型是不可能的!你也不能将你的变量转换为你的对象类型!最近的转换是 (object) 你可以做)

return (object) $xyObj;

您可以阅读更多关于 PHP 类型杂耍的内容:http://php.net/manual/en/language.types.type-juggling.php

引自那里:

a variable's type is determined by the context in which the variable is used

仅供参考:

您在构造函数中遗漏了一个下划线:

function _construct() {
      //^ Here you need 2x _ as all magic methods do

}

Magic Methods

Return 类型刚刚被接受到 PHP 7. return 类型是函数声明的一部分,而不是它的定义。除非你正在创建一个抽象函数或接口,否则不会有太大区别。

将您的代码与 in that RFC 相结合,您会做:

class barCl {
    function _construct() {
    }
}

function fooBar(): barC1 {
    return new barCl;
}

在 7 之前的 php 版本中,无法为可调用对象严格声明 return 类型。