gpt4 book ai didi

php - 检查某物是否是 ArrayCollection 的实例

转载 作者:可可西里 更新时间:2023-11-01 13:40:01 26 4
gpt4 key购买 nike

通常您可以使用以下方法检查变量是否是类的实例:

$foo instanceof bar

但是对于 ArrayObjects(属于 Symfony 2),这似乎不起作用

get_class($foo) 返回 'Doctrine\Common\Collections\ArrayCollection'

$foo instanceof ArrayCollection

返回 false

is_array($foo) 返回 false$is_object($foo) 返回 true

但我想对这种类型做一个具体的检查

最佳答案

要对命名空间下的对象进行内省(introspection),仍然需要使用 use 指令包含该类。

use Doctrine\Common\Collections\ArrayCollection;

if ($foo instanceof ArrayCollection) {

}

if ($foo instanceof \Doctrine\Common\Collections\ArrayCollection) {

}

关于您尝试使用 is_array($foo) 来确定用作数组的对象。

该函数仅适用于array 类型。但是要检查它是否可以用作数组,您可以使用:

/*
* If you need to access elements of the array by index or association
*/
if (is_array($foo) || $foo instanceof \ArrayAccess) {

}

/*
* If you intend to loop over the array
*/
if (is_array($foo) || $foo instanceof \Traversable) {

}

/*
* For both of the above to access by index and iterate
*/
if (is_array($foo) || ($foo instanceof \ArrayAccess && $foo instanceof \Traversable)) {

}

ArrayCollection 类实现了这两个接口(interface)。

关于php - 检查某物是否是 ArrayCollection 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com