请问:PHP自定义函数时怎么指定参数类型?
比如 function foo(int $n, string $s){} ,但是这样是不对的
调用函数时错误提示:Argument 1 passed to foo() must be an instance of int,
为什么语言自带的函数有类型提示呢?
比如输入substr(就会提示substr(string $string, int $start [, int $length] );
请问怎么实现~~~
class User{
public $name;
public $password;
function __construct($name,$password){
$this->name=$name;
$this->password=$password;
}
}
//参数可以指定对象类型
function f1(User $user){
echo $user->name,”,”,$user->password;
}
//参数可以指定数组类型
function f2(array $arr){}
//参数不可以指定基本类型,下面一句会出错
function f3(string $s){}
public $name;
public $password;
function __construct($name,$password){
$this->name=$name;
$this->password=$password;
}
}
//参数可以指定对象类型
function f1(User $user){
echo $user->name,”,”,$user->password;
}
//参数可以指定数组类型
function f2(array $arr){}
//参数不可以指定基本类型,下面一句会出错
function f3(string $s){}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-08-29
php里不能直接在参数上指定类型
必要时可以强制转换:如
function foo($n, $s){
$n = (int) $n;
}本回答被网友采纳
必要时可以强制转换:如
function foo($n, $s){
$n = (int) $n;
}本回答被网友采纳
第2个回答 2011-08-28
不需要指定变量的类型吧, 直接 function foo($n, $s){}追问
~~~可以的,但是可不可以像自带函数一样给个类型提示呢.
追答你是想像 Dreamweaver 中打出 foo( 的时候就给出参数类型的提示, 或者 Zend Studio 中那样,一调用这个函数就给个参数类型的提示吗?