你能指定给函数的参数的数据类型(PHP5)

时间:2012-11-05 14:53:45

标签: php function arguments

我想指定可以赋予函数的数据类型。

在本演示代码中(作为示例)我想指定给"__construct()"函数的参数的数据类型,以便INT只需要$id,并且Objects的{​​{1}}类型的"example2"

你知道我怎么能实现这个目标吗?

$some_object

4 个答案:

答案 0 :(得分:1)

您有类型提示:http://php.net/manual/en/language.oop5.typehinting.php

但是,引用手册:

  

类型提示不能与标量类型(如int或string)一起使用   也不允许特征。

答案 1 :(得分:1)

是和否。

在PHP5中有一些类型提示,但它不允许标量类型。所以intstring没有,但几乎所有其他内容都是肯定的(包括array,非常奇怪)。

请参阅:http://php.net/manual/en/language.oop5.typehinting.php

答案 2 :(得分:0)

在php中,你只能输入提示对象(和数组)。你不能输入提示标量:

http://php.net/manual/en/language.oop5.typehinting.php

答案 3 :(得分:0)

检查构造函数中的类型并在需要时抛出异常:

function __construct($id,$some_object){
    if (!is_int($id)) throw new UnexpectedValueException("Argument 1 must be an integer");
    if (!is_object($some_object)) throw new UnexpectedValueException("Argument 2 must be an instance of any object");

    $this->id = $id;
    $this->object = $some_object;
}