复杂类型作为数组索引

2024-04-01

$array[(对象)$obj] = $other_obj;

PHP 数组仅适用于标量数据类型(如 int、string、float、boolean、null)的索引。我不能像其他语言一样使用对象作为数组索引吗?那么如何实现对象->对象映射呢?

(虽然我在这里见过类似的东西,但记不太清了,而且我的搜索创造力已经过时了。)


听起来你想重新发现SplObjectStorage http://php.net/splobjectstorage类,它可以提供从对象到其他数据(在您的情况下为其他对象)的映射。

它实现了 ArrayAccess 接口,因此您甚至可以使用您想要的语法,例如$store[$obj_a] = $obj_b.

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

复杂类型作为数组索引 的相关文章

  • Symfony VS CakePHP:哪一个最接近 PHP [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我主要是一名 Rails 开发人员 但有时 我必须使用 PHP 进行编码 因为 stackoverflow com更喜欢可以回答的问题 我想知道
  • 无法访问 WordPress 中声明的全局变量

    我有以下代码 g value something print g value function get value global g value print g value print get value 当我在独立的 PHP 脚本中运行它
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • Facebook Graph API - 如何用新行发布到墙上?

    我正在使用 Facebook Graph API 但遇到一个问题 我找不到任何方法如何使用一些 HTML 代码发布到墙上or新线路 怎么办呢 这是我的代码
  • 调用未定义的函数curl_version

    您好 我已经在运行 php 5 6 的 ubuntu 14 04 上安装了 wordpress 4 6 网站 管理页面不可见 我可以在日志中看到以下错误 致命错误 在第 274 行调用 var www html files modules
  • 在 PHP 中的请求之间存储对象而不进行序列化

    我正在用 PHP 编写一个有状态的 Web 应用程序 其中状态可能包含大量对象 目前 我将所有这些对象保存在 SESSION 中 并在请求结束时将它们序列化 这有点痛苦 因为序列化整个会话需要几秒钟 而反序列化则需要更多时间 我想尝试 AP
  • 访问父函数中定义的变量

    有没有办法访问 foo从内部inner function outer foo function inner print foo inner outer PHP 在 PHP 5 3 中 你可以这样做 function outer foo in
  • $_POST 返回空

    尝试练习一下 ajax 和 PHP 我不明白为什么每当我发送一些东西时 它都会返回空或未定义的索引 PHP 返回空 JS form submit function var meth this attr action var msg msg
  • PHP:我是否将事件驱动编程与信号感知接口(信号和槽/观察者模式)混淆了?

    我看到很多人说 Symfony2 Zend Framework 2 等都是事件驱动的 在桌面世界中 通过事件驱动编程 我了解到应用程序每当其状态发生变化时都会通知其观察者 由于 PHP 应用程序是无状态的 因此无法执行此类操作 IE 让观察
  • 当我使用加盐 CRYPT_MD5 加密我的密码时,正在加密什么?

    对字符串使用 md5 总是会产生字母数字加密结果 即 没有符号 然而 当我使用 php crypt 函数 特别是带有盐的 CRYPT MD5 并且它已打开 我已经检查过 时 它返回的假定 md5 哈希看起来不像 md5 哈希 例如 如果我
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • PHP 中消息队列和工作系统的有效架构?

    我正在尝试了解我想要在 PHP 应用程序中实现的消息队列模型和作业 我的目标是卸载需要发送到多个第三方 API 的消息 数据 因此访问它们不会减慢客户端的速度 所以将数据发送到消息队列是理想的 我考虑过仅使用 Gearman 来保存 MQ
  • PHP strtotime +1 个月添加额外一个月[重复]

    这个问题在这里已经有答案了 我有一个简单的变量 可以将今天添加一个月 endOfCycle date Y m strtotime 1 month 今天是 2013 年 1 月 所以我希望返回 2013 02 但我得到的是 2013 03 我
  • 将可点击的锚标记转换为 html 文档中的纯文本

    我正在尝试匹配 a 我的内容中的标签 并将其替换为链接文本 后跟打印版本的方括号中的 url 如果只有 href 则以下示例有效 如果 a 包含另一个属性 它匹配太多并且不会返回所需的结果 我怎样才能匹配 URL 和链接文本 就是这样 这是
  • 检查外部图像是否存在的正确 PHP 方法?

    我知道至少有 10 个相同的问题有答案 但似乎没有一个对我来说完美无缺 我正在尝试检查内部或外部图像是否存在 图像 URL 是否有效 fopen url r 失败 除非我使用 fopen Warning fopen http example
  • PHP - 递归搜索数组中的键和子键,成功时返回键['subkey]

    因此 我编写了一个函数 该函数可以在数组中深入搜索两个级别以查找键和子键对 基本上是在寻找key subkey 如果找到 则返回key subkey 我正在寻找一种以真正递归的方式执行此操作的方法 并根据需要进行尽可能多的深度搜索 直到到达
  • 有没有办法重置特定类的所有静态属性?

    您可能知道 静态属性使测试变得困难 有没有办法将特定类的所有静态属性重置回其初始状态 理想情况下 这不需要为每个类定制代码 但可以通过继承以通用方式使用 或者完全从类外部使用 请不要回复 不要使用静态属性 之类的内容 谢谢 假设您正在使用
  • Yii框架异步请求

    我有一个执行 3 个任务的 ajax 请求 保存模型 数据库 发电子邮件 给出成功或失败的消息 因为这个任务需要的时间太长了 用户最多可以等待 20 秒以获得响应 成功或失败消息 如果用户关闭浏览器 则其会停止用户当前进程的操作之一 这是糟
  • 如何将 JSON 文本转换为 PHP 关联数组

    我将以下 JSON 对象存储在文本文件 data txt 中 player black time 0 from 2c to 3d 我使用 php 阅读 问题 有没有简单的方法可以转换 data到 PHP 关联数组 我尝试过使用json de
  • 如何使用 monolog ElasticSearchHandler 登录 Laravel 应用程序

    Monolog 包含弹性搜索处理程序和格式化程序 但它作为自定义通道对 Laravel 的实现并不像 Laravel 文档网站上描述的那么简单 以下是如何执行此操作的简要分步说明 为您的弹性搜索日志记录创建一个配置文件 config ela

随机推荐

  • 表情符号取值范围

    我试图从字符串中取出所有表情符号 就像消毒剂一样 但我找不到完整的表情符号值集 表情符号字符的 UTF16 值的完整集合是什么 Unicode 标准的Unicode 技术报告 51 http www unicode org reports
  • 更改Windows Phone通用应用程序中内容对话框按钮的样式

    我在 xaml 中定义了此内容对话框
  • 防止 python 覆盖范围包含虚拟环境站点包

    我是报道新手 遇到了一个奇怪的问题 我的报道考虑了我的虚拟环境站点包 这是覆盖率运行的输出 coverage run test py Ran 20 tests in 0 060s OK atcatalog jmfrank63 fullsta
  • 无法在 vs2008 中打开 NerdDinner 项目

    NerdDinner csproj 不会在带有 net 3 5 sp1 的 vs2008 sp1 中加载 我是不是对这些工具或其他东西不了解最新的情况 它抱怨此安装不支持此项目类型 您是否安装了 ASP NET MVC 框架 如果没有 你需
  • 将数据帧系列中的分数转换为浮点数

    在 Python 3 x 中 如何将包含分数字符串和 NaN 值的 Dataframe 列转换为浮点数 我尝试了一些方法 但没有找到合适的解决方案 所以如果我有一个数据框 df 它看起来像 a b 0 John 20 1 1 Bob NaN
  • 如何在 R 中获取整数哈希码?

    我想做的是在 R 中实现一个哈希技巧 代码如下 library digest a lt digest key a algo xxhash32 1 4da5b0f8 这返回了字符类型的哈希码 有什么办法可以把它变成整数吗 或者还有其他包可以实
  • 使用 Passport-facebook 从 Facebook 检索照片

    我可以通过 Passport facebook 检索基本用户信息 遵循以下代码并保存在 mongodb 中 app get auth facebook passport authenticate facebook scope email p
  • 从kafka主题中删除单个记录

    有没有办法从kafka主题中删除单个记录 我知道有一个脚本 kafka delete records sh 可以删除指定主题和分区上指定偏移量之前的记录 但我希望能够删除我指定的偏移量上的记录 有没有办法做到这一点 这不是在 Java 上
  • Python 输出格式

    你好 我搜索过输出格式 但格式没有成功 我找不到合适的文档 我真的想了解这段代码是如何工作的 如果有人可以启发我吗 print Survived i 1f len survived float len survived len train
  • 您是否必须 pickle 缩放器和 ML 模型才能部署?

    当使用 sklearn 训练 ML 模型时 我通常使用 sklearn 内置的 StandardScaler 首先将缩放器拟合到训练数据 然后转换训练数据 最后使用相同的 StandardScaler 对象来转换测试数据通过训练数据集中之前
  • \bin 中插入不需要的 SQLite

    我正在使用 Visual Studio 2010 并使用 Web 部署将 Net MVC 站点提升到特定环境 我安装了 Elmah 它在我的 DEV 环境中运行得很好 但是当我推送 TEST 时 我遇到了异常 因为 SQLite 不是一种好
  • Django - 使用子对象过滤查询集(ForeignKey)

    我有 3 个模型 其中 2 个对应第一个模型 class Parent models Model name models CharField class Child1 models Model parent models ForeignKe
  • C 语言中的“{0}”是什么?

    什么是char buf MAXDATASIZE 0 s 0 means 试图打印它 但它什么也没打印 include
  • 检查用户是否使用兼容模式的 IE

    我正在寻找一些代码 PHP 或 JavaScript 可以很好地检查查看页面的用户是否使用兼容模式 然后我可以使用该代码执行一些条件语句 或者基本上给他们一个通知以将其关闭 强迫他们 这将禁用兼容性视图 除非用户随后通过进入开发人员工具并进
  • Spring Security:多个ThreadLocals中有相同的SecurityContext实例,它是如何工作的?

    我有一些关于 Spring Security 3 0 5 和 SecurityContext 的问题 首先 我尝试总结一下我所知道的 SecurityContextHolder 存储 SecurityContext 在Request之间 S
  • 多个 socket.io 服务器共享单个 HTTP/S 服务器

    使用 ws Node js WebSocket 库 可以有多个服务器共享单个 HTTP S 服务器 https github com websockets ws multiple servers sharing a single https
  • iPhone Web 应用程序 - 接听电话时会话和当前 URL 丢失

    我有一个多页面网站 旨在作为 iPhone 上的网络应用程序运行 它具有通常的
  • 如何将 PIL.ImageTk.PhotoImage 保存为 jpg

    我想将 PIL ImageTk PhotoImage 保存到文件中 我的方法是创建一个 打开 文件并调用 写入 方法 但它不起作用 因为我不知道如何从对象获取字节数组 def store temp image data image new
  • 多部分/替代子类型,客户端何时使用它?

    为什么网络邮件 如 Gmail 使用以下方式发送 MIME 消息多部分 替代子类型 当用 HTML 编写时 而其他人将 HTML 作为 MIME 发送 其中包含文本 html 部分 不使用替代子类型 The 第5 1 4节 https ww
  • 复杂类型作为数组索引

    array 对象 obj other obj PHP 数组仅适用于标量数据类型 如 int string float boolean null 的索引 我不能像其他语言一样使用对象作为数组索引吗 那么如何实现对象 gt 对象映射呢 虽然我在