26

试图弄清楚如何做相当于我在 javascript 中但在 php 中所做的事情。但我不确定运营商会这样做。在javascript中,我想查看传递的特定参数是对象还是数组..如果不是,那么它是字符串/整数,我所做的是类似于

if (str instanceof Array || str instanceof Object) 
{
   //code
}
else
{
   //code
}

任何人都知道这相当于 php 吗?

4

5 回答 5

72

用于is_array检查变量是否为数组,类似地,用于is_object检查变量是否为对象。

于 2012-06-08T23:24:28.663 回答
11

尝试使用:

if (!is_scalar($var)) {
    // Varible is object or array
}
于 2015-05-26T09:50:58.297 回答
1

我在寻找时遇到了这个问题is_countable。也许它对某人有些用处。 https://www.php.net/manual/en/function.is-countable.php

于 2020-02-14T16:38:42.733 回答
0

对象(使用 is_object)--

stdClass Object
(
    [rest_food_items_id] => 137
    [rest_user_id] => 42
)

数组(使用 is_array)----

Array
(
    [rest_food_items_id] => 137
    [rest_user_id] => 42
)

**

例子

**

if(is_object($data)){

}
if(is_array($data)){

}
于 2017-10-25T08:24:09.207 回答
0

从 PHP 8.0 开始,您可以在编写函数时使用联合类型。这不是问题的直接答案,但它可能会帮助某人:

function test(array|object $something): void
{
    // Here, $something is either an array or an object
}
于 2021-09-03T14:34:07.350 回答