从函数中指定 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
}
Return 类型刚刚被接受到 PHP 7. return 类型是函数声明的一部分,而不是它的定义。除非你正在创建一个抽象函数或接口,否则不会有太大区别。
将您的代码与 in that RFC 相结合,您会做:
class barCl {
function _construct() {
}
}
function fooBar(): barC1 {
return new barCl;
}
在 7 之前的 php 版本中,无法为可调用对象严格声明 return 类型。
是否可以从函数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
}
Return 类型刚刚被接受到 PHP 7. return 类型是函数声明的一部分,而不是它的定义。除非你正在创建一个抽象函数或接口,否则不会有太大区别。
将您的代码与 in that RFC 相结合,您会做:
class barCl {
function _construct() {
}
}
function fooBar(): barC1 {
return new barCl;
}
在 7 之前的 php 版本中,无法为可调用对象严格声明 return 类型。