在某些编程语言(如Java或C#)中,程序员可以设置允许的输入变量类型。我使用PHP,我想做同样的事情,以避免将错误的数据传递给我的方法/函数。
我的代码:
public static function generateFiles(array $data, Custom_Pager $pager)
{...}
为什么允许这样做,我不能这样写:
public static function generateFiles(array $data, Custom_Pager $pager, int $limit, string $text)
{ ... }
有没有办法标准化上面提到的第一和第二种方法声明?如果不是,为什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
是的,您可以使用type hinting强制参数属于某种类型,但它显然不适用于基本类型。
但是,如果参数值不符合您的期望,您可以在方法中抛出异常。
if (!is_int($param))
throw new Exception('param must be int.');
答案 2 :(得分:0)
我做了一个强制类型提示的函数。它的工作原理如下:
function getVar($var,$type) {
switch($type) {
case "int":
return (int)$var;
case "string":
return (string)$var;
}
}
您可以继续使用所有其他类型。您也可以使用相同的方法来检查is_int,is_string,is_bool等变量......