我的一个函数的一个参数采用以下类型的值:
null,
'*','',
array('domain1','domain2'),
array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),
我在尝试确定参数的类型时遇到问题。特别是在确定它是否是一个数组及其关键参数时。
基本如何确定参数类型?
我的一个函数的一个参数采用以下类型的值:
null,
'*','',
array('domain1','domain2'),
array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),
我在尝试确定参数的类型时遇到问题。特别是在确定它是否是一个数组及其关键参数时。
基本如何确定参数类型?
您可以使用is_array
函数来确定参数是否为数组。您能给我们您的代码以提供更多详细信息吗?
如果您想要一个简单的方法来确定类型,您可能根本不想使用数组。您可能会发现将数据填充到特定类的对象中会更有用。
然后您可以使用instanceof
或测试对象类型is_a()
。
使用对象还可以使您能够为数据结构提供附加功能。foreach()
通过使其成为迭代器,它仍然可以被视为一个数组(例如 with等)。
如果您更喜欢使用数组,并且想要区分键控数组和数字数组,您可以查看此问题的答案。
最好的答案是一个简短的函数,如下所示:
function array_isassoc(array $array) {
return array_keys($array) !== range(0,count($array)-1);
}
这将返回true
键控数组或false
数值数组。
这可能是您可以使用的最可靠的方法,尽管如果您有一个数字数组并从中删除元素而不重新编号键,它将停止工作。