class Foo {
public $bar;
...
public function setBar($bar) {
$this->bar = (array)$bar;
}
}
class Foo {
public $bar;
...
public function setBar(array $bar) {
$this->bar = $bar;
}
}
哪两个被认为是最佳做法?两者都有意义吗?:
class Foo {
public $bar;
...
public function setBar(array $bar) {
$this->bar = (array)$bar;
}
}
解决方法:
它们在功能上并不相同.
类型提示:您正在规定必须传递的类型.如果给定值的类型不正确,则会生成错误.这不会将传递的值转换或“转换”为特定类型.
类型转换:无论传递什么值,您都将其“转换”为正确的类型.如果你的函数“需要”一个数组,那么为什么要传递一个布尔值然后将它转换为数组呢?
此外,类型提示允许您指定特定类的对象实例.在下面,$bar必须是类Bar的实例,否则会生成错误:
public function setBar(Bar $bar)
您不能将变量类型转换为特定类的对象.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。