从函数中指定返回类型

时间:2015-01-24 14:34:05

标签: php function return php-7

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

class barCl {
    function _construct() {
    }
}

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

2 个答案:

答案 0 :(得分:4)

返回类型刚被PHP 7接受。返回类型是函数声明的一部分,而不是它的定义。除非您正在制作抽象功能或界面,否则不会产生太大的影响。

将您的代码与in that RFC结合起来,您可以:

class barCl {
    function _construct() {
    }
}

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

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

答案 1 :(得分: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

}

Magic Methods