2

是否可以从函数返回特定类型的类?

class barCl {
    function _construct() {
    }
}

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

2 回答 2

4

返回类型刚刚被 PHP 7 接受。返回类型是函数声明的一部分,而不是它的定义。除非您正在制作抽象函数或接口,否则不会有太大区别。

将您的代码与该 RFC 中的内容相结合,您将执行以下操作:

class barCl {
    function _construct() {
    }
}

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

在 7 之前的 php 版本中,不能严格声明可调用的返回类型。

于 2015-01-24T14:49:24.130 回答
0

正如你已经这样做了,你可以像这样投射它:

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

return (object) $xyObj;

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

并从那里引用:

变量的类型由使用变量的上下文决定

供参考:

您在构造函数中错过了一个下划线:

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

}

魔术方法

于 2015-01-24T14:37:04.517 回答