tro*_*oks 1 php methods arguments
有人可以向我解释一下吗?
这两种方法有什么区别?
function some_function($foo)
{
}
Run Code Online (Sandbox Code Playgroud)
和
function some_function(foo $foo)
{
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下
public function validate_something(notice $notice, $tok_id, $captcha)
{
if(something === true) {
$notice->add('info', 'Info message');
} else {
$notice->add('error', 'Error message');
}
}
Run Code Online (Sandbox Code Playgroud)
$ notice是课堂通知的对象
class notice {
private $_notice = array();
public function get_notice(){
return $this->_notice;
}
public function add($type, $message) {
$this->_notice[$type][] = $message;
}
...
}
Run Code Online (Sandbox Code Playgroud)
它被称为类型提示
function some_function($foo)
{
}
Run Code Online (Sandbox Code Playgroud)
期望在调用some_function时传递给some_function的参数
function some_function(bar $foo)
{
}
Run Code Online (Sandbox Code Playgroud)
期望在调用时将数据类型(类,抽象或接口或数组)条的参数传递给some_function ....如果传递的参数不是此数据类型,则会导致捕获致命错误
编辑
提示类型的价值是什么?
is_a或instance_of验证参数.