为什么不能直接访问带索引的数组?

2024-04-30

当我尝试直接使用索引访问数组元素时,我感到很困惑。我想我可以在编码中更好地解释它:-

我有一个 Employee 类的对象,我将其 TypeCast 到数组并尝试像这样显示它:

$arrOfObj = (array) $objEmployee;

$arrKeys = array_keys( $arrOfObj );

display( $arrOfObj ); // display() is a method in my library that prints an array in a mannered way.

这给了我以下输出:-

Array
(
   [*m_UserId] => 1155
   [*m_EmailPassword] => 
   [*m_IsAssignedToManagementCompany] => 
   [*m_ManagementCompanyId] => 
   [*m_DepartmentId] => 3
   [*m_DesignationId] => 4
   [*m_EmployeeCompletedMonth] => 
   [*m_EmployeeCompletedDay] => 
   [*m_EmailAddress] =>[email protected] /cdn-cgi/l/email-protection
   ------
   ------
 )

现在我不明白这个星(*)。当我的成员变量很简单,如 m_UserId、m_EmialPassword 等时,它从哪里获得这个星号。当我尝试使用以下 2 条语句显示相同内容时,出现错误:-

display( $arrOfObj['*m_EmailAddress'] );

or

display( $arrOfObj['m_EmailAddress'] );

两者都给出错误消息未定义索引:m_EmailAddress

当我尝试这样做时,效果很好:-

display( $arrOfObj[$arrKeys[8]] );

最后一个工作正常,谁能解释一下问题所在。

            display( $arrOfObj[$arrKeys[11]] );
            display( $arrOfObj['m_strEmailAddress'] );

如果将对象转换为数组,则结果是一个数组,其元素是该对象的属性。键是成员变量名称,但有一些值得注意的例外:整数属性不可访问;私有变量的变量名前面带有类名;受保护的变量在变量名前有一个“*”。这些前置值的两侧都有空字节。

http://php.net/manual/en/language.types.array.php#language.types.array.casting http://php.net/manual/en/language.types.array.php#language.types.array.casting

Try var_dump(bin2hex($arrKeys[8]))为了启蒙。另请参阅上面链接手册中的示例。

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

为什么不能直接访问带索引的数组? 的相关文章

  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据
  • Codeigniter:Base_url 似乎不起作用

    我开发了一个简单的网站 可以从 Twitter 公共时间线获取推文 将其缓存 60 秒等等 我最近将主机从 Hostgator 移至 Mediatemple 我的网站之前在 Hostgator 上运行良好 我的应用程序不使用数据库连接 也不
  • 如何解析cURL返回的header?

    我正在尝试使用 cURL 与 API 进行通信 其中一种方法要求我传递ININ ICWS CSRF Token标题 即WAhtYWxoYXlla1dBY2NvUkRJWCQxZmUxZWFhZS0xZTE0LTQyNGYtYjdhZS0zN
  • 打印一个模式以显示最多 5 行 5 列的数字,例如 5 4 3 2 1 和下一行 4 3 2 1 5 直到第 5 行

    这是一个正方形图案 每行有 5 列 共有 5 行 图案如下所示 5 4 3 2 1 4 3 2 1 5 3 2 1 5 4 2 1 5 4 3 1 5 4 3 2 我的代码如下以获得模式 但当计数器达到 1 并显示在相应的列值中时 我无法重
  • PHP 从日志事件中获取行号

    好的 我还有一个问题HERE https stackoverflow com questions 3213423 php how could i make this class better suggestions feedback wel
  • filter_input() 何时删除 POST 变量的斜杠?

    我创建了一个小型 PHP 脚本 它在 PHP 5 2 17 的服务器上运行magic quotes gpc指令已启用 我没有对 php ini 文件的写访问权限 并且我想从用户输入中删除所有斜杠 即使magic quotes gpc指令被关
  • 同一路由组的多个前缀

    我正在为一所学校编写一个相当简单的网站 该网站有新闻 文章 视频剪辑 等 它的工作方式是在主页中我们向访问者展示一些课程 例如 gt math gt geography gt chemistry 用户在其中选择 1 网站内容会根据用户的选择
  • PHP 中的抽象类是什么?

    PHP 中的抽象类是什么 如何使用 抽象类是至少包含一个抽象方法的类 该方法中没有任何实际代码 只有名称和参数 并且已被标记为 抽象 这样做的目的是提供一种模板来继承并强制继承类实现抽象方法 因此 抽象类是介于常规类和纯接口之间的东西 此外
  • 无法显示由 Fine-uploader 上传到 Amazon s3 的图像

    我现在尝试设置fineuploader s3以显示在aws服务器上成功上传的文件的图像 如示例页面上所做的那样 http fineuploader com s3 demo http fineuploader com s3 demo 我 仍然
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • MySQL 中布尔值的 TINYINT 与 ENUM(0, 1)

    MyISAM 表和 MySQL 5 1 中具有 0 和 1 值的 Tinyint 或 ENUM 0 1 哪个更好 您可以使用BIT 1 如中提到的MySQL 5 1 参考 http dev mysql com doc refman 5 1
  • 如何缓存 twitter api 结果?

    我想缓存 twitter api 结果的结果并将其显示给用户 缓存结果的最佳方法是什么 我正在考虑根据时间限制将结果写入文件 可以吗 还是应该使用任何其他方法 最重要的是 理想的缓存时间是多少 我想显示来自 twitter 的最新内容 但
  • PHP函数返回值到html标签

    我想获取函数的返回值并将其显示到特定的id 在我的 Class php 中 我有一个名为 login 的函数 用于验证密码是否正确 不正确
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • 我应该使用排队系统来处理付款吗?

    我在用着Slim https www slimframework com和这个结合Stripe 的 PHP 库 https stripe com docs api php在我的应用程序中处理付款 一切都很好 但是直到最近 我在我的系统中发现
  • 通过复选框选择多行时出错错误未定义索引:复选框

    我想从中选择多行checkbox并想通过单击按钮立即更新它们 我尝试了多种方法 但不起作用 你能帮忙吗 它显示错误为Undefined index checkbox td td
  • PHP 相当于朋友或内部

    php 中是否有相当于 朋友 或 内部 的东西 如果没有 是否有任何模式可以遵循来实现这种行为 Edit 抱歉 但标准 Php 不是我想要的 我正在寻找类似于马戏团长所做的事情 我有一些类在后端进行 C 风格的系统调用 并且杂耍已经开始变得
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • 如何更改phpmyadmin MySQL的IP地址?

    我在 xampp 中更改了 apache 的 IP 地址 但无法连接到 MySQL 我认为问题是我的 apache 不在我的数据库的同一网络上 我的 apache 位于 192 168 1 10 而我的 MySQL 位于 127 0 0 1

随机推荐

  • data.table .SD 的 LHS 为 :=

    这是参考一个不同的问题 https stackoverflow com questions 26804362 iteratively create columns based on grouped variables 26805158 26
  • 从 IntelliJ IDEA 中的版本控制中删除文件

    我正在使用 IntelliJ IDEA 社区版 2016 1 我已将我的项目放在 Git 下 并将其托管在 GitHub 上 When I first hit that Share Project on GitHub button ever
  • 转储 $mft 文件的内容

    对于一些商业的我正在做的项目我需要能够读取 mft 文件中存储的实际数据 我找到了一个gpl lib http www codeproject com KB files NTFSParseLib aspx artkw ntfs这可能会有所帮
  • 如何在 Xcode 中保持标题注释最新

    Xcode 习惯于将各种 冗余 信息放在它创建的每个代码文件的顶部 其中包含版权声明 类名 项目名和客户端名称 不管你喜欢与否 一旦你创建了一个新的类 A 然后将其重构为 B 信息就已经是错误的 评论会一直说这是 A h 或 A m 此外
  • 对所有列实施搜索过滤器

    我在 PostgreSQL 中找到了这个搜索示例http www postgresql org docs current interactive textsearch tables html TEXTSEARCH TABLES SEARCH
  • 使用接口将泛型委托转换为另一种类型

    使用 NET 4 0 好的 所以我有 private Dictionary
  • flink - 使用匕首注入 - 不可序列化?

    我使用 Flink 最新通过 git 从 kafka 流式传输到 cassandra 为了简化单元测试 我通过 Dagger 添加依赖注入 ObjectGraph 似乎已正确设置自身 但 内部对象 被 Flink 标记为 不可序列化 如果我
  • Angular 2/4 存储令牌的位置

    我有一个用于生成令牌的 REST API 我在 Angular 4 客户端中使用它 但问题是在哪里存储该令牌 在互联网上我发现我可以存储在本地存储或cookie中 所以我的问题是 如果存储令牌是本地存储 并且我刚刚从另一个浏览器复制了有效令
  • 如何使用 Jetty 提供 JSP 文件?

    我嵌入了 jetty 提供单个 servlet 和一些静态内容 我从下载了码头http download eclipse org jetty 7 4 5 v20110725 dist http download eclipse org je
  • 如何创建基本时间戳或日期? (Python 3.4)

    作为初学者 创建时间戳或格式化日期最终比我预期的更具挑战性 有哪些基本的例子可供参考 最终 您希望查看日期时间文档并熟悉格式化变量 但这里有一些示例可以帮助您入门 import datetime print Timestamp Y m d
  • VS CODE 中的 WEBGL 自动完成

    我有一个学校项目 我需要使用 WEBGL 但是在没有自动补全的情况下编写所有代码是相当困难的 我没有找到合适的扩展名 你有想法吗 为了让 Visual Studio 代码能够自动完成 它需要知道变量的类型 例如 如果你有这个 const g
  • 密码恢复:如何解密 md5 加密的密码? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以解密 md5 哈希值 https stackoverflow com questions 1240852 is it possible to decrypt md5 hashes 在我的网站中
  • switch 语句里面有 switch 语句?

    我必须评估很多条件 就我而言 我必须做这样的事情 switch id case 5 switch some other cases here case 6 set some value 在情况 5 中再进行一次切换是个好习惯吗 如果不是 那
  • 排除测试的 Maven 依赖

    我有编译和运行时所需的依赖项 但我想在运行测试时排除它 这可能吗 也许 通过设置个人资料 但我如何仅停用它test生命周期阶段 您可以在测试阶段 重新 配置类路径 这要归功于Maven Surefire 插件 http maven apac
  • Visual Studio 2015 Docker 集成不会附加调试

    我使用 VS 2015 创建了一个 Default net Core RC2 MVC 应用程序 我添加了 Docker 支持 以便我可以在 docker 中运行和调试它 当我运行该项目时 它会构建 docker 容器并启动它 运行命令 do
  • Biztalk 2009 和 2010 .btproj 项目中的增量构建支持吗?

    在追求增量构建时间改进时 我发现 btproj 文件以及依赖于这些文件的所有其他项目都会在每个增量构建上 部分 重建 一直跟踪到 BizTalkCommon targets 我发现它对程序集进行了 2 遍编译 但只有第一遍尊重已经构建的工件
  • 对登录 Instagram 的 PhantomJS 代码进行故障排除

    我编写了这个 PhantomJS 脚本来自动登录 Instagram 它可以成功填写表单字段并按提交按钮 但它总是被重定向回登录屏幕并显示以下消息 你的用户名或密码不正确 我 100 确信凭据是正确的 并且我用多个 Instagram 帐户
  • d3.js 和 Chart.js 之间的比较(仅适用于图表)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在项目中多次使用过 Chart js 但从未使用过 d3 js 很多人说 d3 js 是最好的图表 javascript 框架 但没
  • 如何获取 Highcharts 中某个点的索引?

    我正在使用 Highcharts 的 具有不规则间隔的时间数据 图表 如您所知 当鼠标移动到线条点上时 格式化程序函数将运行并显示一些信息 我想知道鼠标在其上移动的点的索引 因此 如果鼠标移动到该线的第一个点上 工具提示将显示 1 第二个点
  • 为什么不能直接访问带索引的数组?

    当我尝试直接使用索引访问数组元素时 我感到很困惑 我想我可以在编码中更好地解释它 我有一个 Employee 类的对象 我将其 TypeCast 到数组并尝试像这样显示它 arrOfObj array objEmployee arrKeys