【发布时间】:2015-03-23 11:27:02
【问题描述】:
是否可以从函数中返回特定的类型类?
class barCl {
function _construct() {
}
}
function fooBar() {
return (barCl) new barCl;
//^^^^^^^
}
【问题讨论】:
-
return new barCl;有什么问题?
是否可以从函数中返回特定的类型类?
class barCl {
function _construct() {
}
}
function fooBar() {
return (barCl) new barCl;
//^^^^^^^
}
【问题讨论】:
return new barCl; 有什么问题?
你已经这样做了,你可以像这样投射它:
(在 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
}
【讨论】:
(object)
返回类型刚刚被 PHP 7 接受。返回类型是函数声明的一部分,而不是它的定义。除非您正在创建一个抽象函数或接口,否则不会有太大区别。
将您的代码与in that RFC 结合起来,您会这样做:
class barCl {
function _construct() {
}
}
function fooBar(): barC1 {
return new barCl;
}
在 7 之前的 php 版本中,不能严格声明可调用的返回类型。
【讨论】: