我想检查变量的内容是数字还是数组。 is_array()
,is_int()
,is_numeric()
无效。目前我正在使用似乎有效的myArray [1]。但我想知道为什么这个功能之一不能为我做这个?
修改
似乎我有myArray['id']
之类的内容,这总是一个数组。
答案 0 :(得分:4)
$array = is_array(13) ? "yes" : "no";
$int = is_int(13) ? "yes" : "no";
$numeric = is_numeric(13) ? "yes" : "no";
echo $array."\n", $int."\n", $numeric."\n";
回复
no
yes
yes
正如所料,所以我不确定这里的问题是什么!
或许值得注意的是,如果你跑:
$array = is_array("13") ? "yes" : "no";
$int = is_int("13") ? "yes" : "no";
$numeric = is_numeric("13") ? "yes" : "no";
echo $array."\n", $int."\n", $numeric."\n";
回复是:
no
no
yes
这也是你所期望的 - 字符串和数字不表示为数组。
像这样运行gettype:
echo gettype(13);
表明它是integer
。
答案 1 :(得分:2)
这不是一个真正的问题。
对于数字is_array()
13
显然会返回false
有任何真正的问题吗?
尽管PHP 可以允许您使用与访问数组成员相同的语法从变量包含数字13
访问数字1和3,但它不会使数组超出整数。它只是一种“语法糖”。
在开始撰写问题之前,您必须验证您的展示次数。
答案 2 :(得分:1)
你确定吗?
$myNumber = 13;
$myArray = array("test" => "data");
if(is_array($myNumber)) {
echo "myNumber is an array!";
}else{
if(is_numeric($myNumber)) {
echo "myNumber is not an array, but it is a number!";
}
}
我得 myNumber不是数组,但它是一个数字!
答案 3 :(得分:0)
您可以使用gettype
功能。
$type = gettype($variable);
if ( $type == 'array' ) {
// it's an array
} else if ( $type == 'integer' ) {
// it's an integer
} else {
// it's a trap !
}