我想检查变量的内容是数字还是数组。 is_array()
,is_int()
,is_numeric()
不实际工作。目前我正在使用似乎工作的myArray [1]。但我想知道为什么这个功能之一不能为我做这个?检查变量是数字还是数组
编辑:
看来,我有这样的事情作为myArray['id']
内容,这始终是一个数组。
我想检查变量的内容是数字还是数组。 is_array()
,is_int()
,is_numeric()
不实际工作。目前我正在使用似乎工作的myArray [1]。但我想知道为什么这个功能之一不能为我做这个?检查变量是数字还是数组
编辑:
看来,我有这样的事情作为myArray['id']
内容,这始终是一个数组。
$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
。
您可以使用gettype
函数。
$type = gettype($variable);
if ($type == 'array') {
// it's an array
} else if ($type == 'integer') {
// it's an integer
} else {
// it's a trap !
}
从德语gettype文档(松散地翻译):'警告 切勿使用gettype检查某个类型,因为返回的字符串可能会在将来更改。此外,这种方法很慢,因为它涉及字符串比较。 改用is _ * - 函数。http://php.net/manual/de/function.gettype.php – Basti 2012-02-24 10:10:07
你确定吗?
$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不是数组,但它是一个数字!
这不是一个真正的问题。 is_array()
显然返回想到什么真正问题数量13
假的?
虽然PHP 可以让你从可变访问数字1和3包含使用用于访问阵列成员的语法相同数目13
,它不会使阵列出的整数。它仅仅是一个“语法糖”。
你必须验证你开始写问题之前的印象。
对不起。我仍然需要学习。 – testing 2012-02-24 10:39:56
...数字13是一个数组?你的意思是'is_array(13)=== true'? – JJJ 2012-02-24 10:05:07