说,我创建了一个名为
的函数retrieveCount($count){
return ++$count;
}
只是一个简单的例子。如何将函数设置为仅接受整数类型? 在Java或其他语言中,我们有:
public int retrieveCount(int count){
return ++count;
}
在PHP中有同样的方法吗?我在文档中读到,对于OOP,PHP对复杂结构(如对象,数组,接口等)具有类型提示,但对于标量类型(int,string)没有。
这是真的吗,我们不能指定类型吗?
谢谢
答案 0 :(得分:1)
PHP没有直接的标量类型提示可能性。但您可以通过检查函数内部的类型并触发相应的错误来模拟它:
function retrieveCount( $count )
{
if( !is_int( $count ) )
{
// I believe E_USER_WARNING is the appropriate error level
// equivalent to what PHP issues itself on type hint errors
trigger_error(
'Argument 1 passed to retrieveCount() must be an integer',
E_USER_WARNING
);
}
return ++$count;
}
答案 1 :(得分:0)
没有直接的方法可以做到这一点,但你可以像这样强制函数中的类型:
function retrieveCount($count) {
$count = intval($count);
return ++$count;
};
查看类似的函数strval
,floatval
...
答案 2 :(得分:0)
为确保函数接收整数类型,您需要像这样调用is_int():
function retriveCount( $count ){
if( !is_int( $count ) )
return 0; // or whatever you want errors to return
return ++$count;
}
或者,如果您希望能够处理形成类似于不一定数字的数字的字符串,则可以执行以下操作:
function retriveCount( $count ){
if( (int)$count != $count )
return 0; // or err value
return ++$count; // will be integer type
}
阅读为什么返回值将是Type Juggling documentation中没有任何强制转换的整数。