有人可以向我解释这个吗?
这两种方法有什么区别?
function some_function($foo)
{
}
和
function some_function(foo $foo)
{
}
在我的情况下
public function validate_something(notice $notice, $tok_id, $captcha)
{
if(something === true) {
$notice->add('info', 'Info message');
} else {
$notice->add('error', 'Error message');
}
}
$ notice是课堂通知的对象
class notice {
private $_notice = array();
public function get_notice(){
return $this->_notice;
}
public function add($type, $message) {
$this->_notice[$type][] = $message;
}
...
}
答案 0 :(得分:6)
它被称为type hinting
function some_function($foo)
{
}
期望在调用
时传递给some_function的参数function some_function(bar $foo)
{
}
期望在调用时将数据类型(类,抽象或接口或数组)条的参数传递给some_function ....如果传递的参数不是此数据类型,则可以获取致命错误
修改强>
提示类型的价值是什么?
is_a
或instance_of
验证参数。 答案 1 :(得分:1)
使用这种方法:
function some_function($foo) {
}
您期望在函数$foo
有了这个:
function some_function(foo $foo) {
}
您期望一个名为$foo
的参数,但它必须是foo类型(类foo的对象)