PHP自定义函数时怎么指定参数类型& 参数有类型提示

请问: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] );
请问怎么实现~~~

回答

/**
* @param string $x  Optional.
* @param string $y  123.
* @return string Blog prefix.
*/
function sum($x, $y=null){
    return $x.$y;
}

这样就有参数类型提示了。

 

//参数不可以指定基本类型,下面一句会出错

function f3(string $s){}

 

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){}

您可以选择一种方式赞助本站