如何检查变量是否是数组?...或类似数组的东西

2023-12-29

我想用一个foreach用一个变量循环,但这个变量可以有很多不同的类型,NULL例如。

所以之前foreach我测试一下:

if(is_array($var)){
  foreach($var as ...

但我意识到它也可以是一个实现的类Iterator界面。也许我是盲目的,但如何检查类是否实现接口?有没有类似的东西is_a函数或inherits操作员?我发现class_implements,我可以使用它,但也许有更简单的东西?

其次,更重要的是,我认为这个函数存在,足以检查变量是否存在is_array或“实施Iterator接口”或者我应该测试更多东西?


如果您正在使用foreach在函数内部,您需要一个数组或一个可穿越 http://php.net/manual/en/class.traversable.php对象,您可以键入提示该函数:

function myFunction(array $a)
function myFunction(Traversable)

如果您不使用foreach在函数内部或者您期望两者你可以简单地使用这个结构 http://www.php.net/manual/en/class.traversable.php#99195检查是否可以迭代变量:

if (is_array($a) or ($a instanceof Traversable))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查变量是否是数组?...或类似数组的东西 的相关文章

  • 我如何知道请求是否来自 flash swf?

    我有一个用 flash 开发的应用程序 我需要访问一些 php 文件 因此 如果访问来自 swf 则 php 文件会返回一些数据 如何判断请求是否来自Flash 无需将 get post 变量传递给 php 可能是用户代理 推荐人 请记住
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 从twitter api实体参数php获取图像url

    我正在尝试通过实体参数使用 php 获取并显示在推文中发布的图像 我的 url 中有 include entities 可以看到返回的 json 中的实体 在我的 foreach 循环中 我正在执行以下操作 foreach results
  • Ubuntu 18.04升级后php7.2-curl无法安装

    今天从 16 04 升级到 18 04do release upgrade d 在升级过程中 我被告知一些软件包将被删除 其中包括 删除 libperl5 22 lxc common perl modules 5 22 php imagic
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • $_POST、$_GET 和 $_REQUEST 之间有什么区别?

    我对这些超级全局变量有点困惑 POST GET and REQUEST 在 PHP 中 在 PHP 中哪些场景需要使用这些变量 这三个变量的主要区别是什么 POST是在使用 application x www form urlencoded
  • 数组初始化编译时间 - Constexpr 序列

    我正在读书this https stackoverflow com questions 45938798 for loop with variable step size c 45939130关于SO的问题 这个问题本身并不是那么有趣 但我
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 如何在无法重启的服务器(Apache)上使用gettext?

    我在服务器故障上问了这个问题 https serverfault com questions 104224 how do you use gettext on server apache you cant restart但我没有得到任何回应
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • pq:函数unnest(未知)不是唯一的

    以下代码工作正常 但我想将 array a b c d e 定义为变量 rows err db Query select colname from SELECT date unnest array a b c d e AS colname
  • 在 PHP 中将十进制/双精度/浮点值与 PDO 绑定的最佳方法是什么?

    看来类常量只涵盖PDO PARAM BOOL PDO PARAM INT and PDO PARAM STR用于绑定 您只是将十进制 浮点 双精度值绑定为字符串还是有更好的方法来处理它们 MySQLi 允许使用 d 类型表示 double
  • 如何 grep 遍历数组,同时过滤掉匹配项?

    有没有一种快速简便的方法来 grep 遍历数组 找到满足某些测试的元素and从原始数组中删除这些 例如我想要 a 1 7 6 3 8 4 b grep filter gt 5 a now b 7 6 8 and a 1 3 4 换句话说 我
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp

随机推荐

  • 反向重用 CSS 动画(通过重置状态?)

    我在 CSS 中使用了两个关键帧动画 一个从左向右移动 另一个使用完全相同的值 但方向相反 keyframes moveLeft from transform translate3d 50px 0 0 to transform transl
  • 在 React 中 e.target.value 返回未定义的问题

    我有一个功能 您可以单击一个图像并查看可单击的名称列表 当您单击一个名称时 该人的图像应该取代原始图像 我正在使用艺术家 api 而不是在控制台中收到错误 图像更改为名称为 未定义 的艺术家的 img 奇怪 可能不是一个巨大的修复 但我已经
  • 从 javascript 调用 Winform 托管的 WCF 服务

    我有一个带有 Ajax Web 端点的 Winform 托管 WCF 服务 我还有一个单独的 ASP NET 项目 页面上有 ScriptManager 组件 我的问题是 如果我使用 javascript 从 ASP NET 应用程序的客户
  • 在 LLVM IR 中插入 GetElementpointer 指令

    我想知道如何通过 LLVM Pass 在 LLVM IR 中插入 GetElementPointer 指令 假设我有一个数组 arr4 alloca 100000 x i32 align 4 并想要插入一个像 arrayidx getele
  • 一个元素上的多个 jQuery 事件具有不同的功能和目标选择器

    有没有办法结合这两种方法来处理 jQuery 中的事件附件 selector on mouseenter function mouseleave function mousedown function mouseup function 我更
  • 使用 Interlocked 测试并有条件地更新 long

    有没有一种巧妙的方法可以使用Interlocked班级 或者我应该使用lock 我的具体用例是我有多个线程来计算long值 并将其与共享 最大值 值进行比较 仅当本地值较大时才替换共享值 Try the Interlocked Compar
  • React-Final-Form 在子组件中带有 DropDown,怎么样?

    我正在尝试在子组件中使用带有 DropDown 的 React final form 无法让这个工作 我的所有文本字段都已经在子组件中 这就像一个魅力 父级中的字段如下所示
  • C++、cin、cout、threads 和sync_with_stdio 的输出损坏

    我正在尝试用 C 编写一个程序 以尽可能最快的方式处理大量数据包 来自标准的所有数据包都应尽快读取 发送到池中的一个线程进行处理 然后处理到将数据包写入标准输出的输出线程 当您在 C 中使用标准输入和输出时 建议在任何输入或输出之前调用st
  • 放弃 Git Stash Pop

    我做了一个 git stash pop 现在有很多冲突 我在之前提交了所有最近的代码git stash pop 那么有没有办法返回到最后一次提交并消除所有冲突并编码git stash pop注射 这个问题已经在 stackoverflow
  • 如何从会话中检索通用列表?

    我在会议中列出了一份清单 Session Add SessionList mylist 如何从会话中检索它 var list Session SessionList as List
  • Appengine 过滤不等式和排序失败

    我认为我在这里忽略了一些简单的事情 我无法想象这是不可能做到的 我想按日期时间属性进行过滤 然后按排名整数属性对结果进行排序 当我尝试这样做时 query filter submitted gt thisweek order ranking
  • 从 JSON 到 NSArray

    我正在使用此处找到的 JSON 框架 http stig github com json framework http stig github com json framework在我的 iPhone 应用程序中 我正在尝试将一些数据解析为
  • 这是 Ruby 中 Array.fill 方法的错误吗? [复制]

    这个问题在这里已经有答案了 应该是这种情况 即我误解了 还是一个错误 a Array new 3 Array new 3 a 1 fill g gt g g g g g g g g g 不应该导致 gt nil nil nil g g g
  • 批处理文件从txt文件中删除前18个字符

    我有一个 txt 文档 其中包含超过 32 000 行带注释的机器代码 它看起来像这样 Display menu window C0 000E E220 SEP 20 C0 0010 C210 REP 10 C0 0012 20640B J
  • HostnameVerifier 接口的不安全实现 - Android

    Play 商店应用被拒绝的原因 您的应用程序正在使用 HostnameVerifier 接口的不安全实现 您可以在此找到有关如何解决该问题的更多信息Google 帮助中心文章 https support google com faqs an
  • grep 查找中间带有通配符的文本

    我想 grep 类似的东西 gt sh lt 但这不起作用 我可以 grep 一切 sh lt 但无法让通配符发挥作用 这里有什么技巧呢 你需要 grep 类似的东西 gt sh lt The 部分匹配任何长度的任何字符 部分匹配一个点
  • gwt 自定义小部件包装方法

    我的自定义小部件如下所示 public class CustomWidget extends Composite public static CustomWidget wrap com google gwt dom client Eleme
  • 如何将 Lua 函数传递给 C 函数并多次执行 Lua 函数?

    我想要做的是创建一个函数 它将迭代一些对象并为每个函数调用一个函数 我使用的是 BlitzMax 而不是 C 但这不是重点 因为它具有 Lua 的 C 函数的完整包装 Lua有一个lua pushcfunction 命令 但是lua pus
  • Python3 + Curses:如何按“q”立即结束程序?

    当我运行以下示例代码并按 q 时 它会正常结束 但是如果我按任何其他字符 例如许多中断和许多其他字符 然后按 q 它不会退出 我该如何解决这个问题 import curses time def main sc sc nodelay 1 wh
  • 如何检查变量是否是数组?...或类似数组的东西

    我想用一个foreach用一个变量循环 但这个变量可以有很多不同的类型 NULL例如 所以之前foreach我测试一下 if is array var foreach var as 但我意识到它也可以是一个实现的类Iterator界面 也许