是否可以从函数返回特定类型的类?
class barCl {
function _construct() {
}
}
function fooBar() {
return (barCl) new barCl;
//^^^^^^^
}
返回类型刚刚被 PHP 7 接受。返回类型是函数声明的一部分,而不是它的定义。除非您正在制作抽象函数或接口,否则不会有太大区别。
将您的代码与该 RFC 中的内容相结合,您将执行以下操作:
class barCl {
function _construct() {
}
}
function fooBar(): barC1 {
return new barCl;
}
在 7 之前的 php 版本中,不能严格声明可调用的返回类型。
正如你已经这样做了,你可以像这样投射它:
(在 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
}