PHP:确定参数类型

时间:2013-01-18 15:11:03

标签: php arrays parameters

  

可能重复:
  PHP Arrays: A good way to check if an array is associative or numeric?

我的一个函数的一个参数采用以下类型的值:

null,

'*','',

array('domain1','domain2'),

array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),

我在尝试确定参数的类型时遇到问题。特别是,在确定它是否是一个数组及其关键参数时。

如何基本确定参数类型?

4 个答案:

答案 0 :(得分:0)

您可以使用is_array函数查看参数是否为数组。您是否可以提供代码以提供更多详细信息?

答案 1 :(得分:0)

PHP gettype函数应该做你想要的。要检查特定类型,您可以使用is_ *函数,如is_array。您可以找到有关他们的信息here

答案 2 :(得分:0)

Php有很多功能。

Here是对大多数(如果不是全部)这些内容的搜索。

您将主要使用以is开头的函数(is_array()is_null()isset()

答案 3 :(得分:0)

如果你想要一个简单的衬垫来确定类型,你可能根本不想使用数组。您可能会发现将数据填充到特定类的对象中会更有用。

然后,您可以使用instanceofis_a()来测试对象类型。

使用对象还可以为数据结构提供附加功能。并且它仍然可以被视为一个数组(例如,使用foreach()等),使其成为迭代器。

如果您希望坚持使用数组,并且想要区分键控数组和数字数组,则可以检查this question的答案。

最佳答案是以下几行中的简短功能:

function array_isassoc(array $array) {
    return array_keys($array) !== range(0,count($array)-1);
}

这将为键控数组返回true或为数字数组返回false

它可能是您可以使用的最可靠的方法,但如果您有一个数字数组并从中删除元素而不重新编号键,它将停止工作。