我想指定可以赋予函数的数据类型。
在本演示代码中(作为示例)我想指定给"__construct()"
函数的参数的数据类型,以便INT
只需要$id
,并且Objects
的{{1}}类型的"example2"
。
你知道我怎么能实现这个目标吗?
$some_object
答案 0 :(得分:1)
您有类型提示:http://php.net/manual/en/language.oop5.typehinting.php
但是,引用手册:
类型提示不能与标量类型(如int或string)一起使用 也不允许特征。
答案 1 :(得分:1)
是和否。
在PHP5中有一些类型提示,但它不允许标量类型。所以int
和string
没有,但几乎所有其他内容都是肯定的(包括array
,非常奇怪)。
答案 2 :(得分:0)
在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;
}