PHP 在 foreach 循环中将变量转换为对象类型

2024-02-16

在下面的代码中,$quiz_object->personalities包含一个数组Personality对象。

// Loop through each personality that exists for the quiz
foreach($quiz_object->personalities AS $existing_personality)
{

    // Show all of the existing personalities
    echo $existing_personality->GetQuizMakerPersonalityHTML();
}

我如何“转换”(我认为这是正确的词)我的变量$existing_personality在 foreach 循环中作为对象类型?

我希望这样做,以便当我输入时$existing_personality->,我得到了该对象类型可用的公共函数的列表。

UPDATE

目前,Zend Studio 不知道我正在循环遍历数组Personality循环内的对象,它只是认为它是一个标准变量。然而,它是一种类型,我的代码运行得很好。我只想在 foreach 循环中获得有关我的变量的 IDE 提示。

为了让我清楚,如果我有的话,每个其他对象都会出现提示:

$personality_object = new Personality();

// I get the IDE hints here
echo $personality_object->MyFunction();

但是一旦我开始在 foreach 中循环,Zend 就无法知道我正在循环对象数组。

这就是我最初定义人格数组的方式Personality object:

class Personality
{

    // Array of Personality objects
    public $personalities = array();

}

这很大程度上取决于您使用的 IDE。

在 Netbeans 和 IntelliJ 中,您可以使用@var在评论中:

/* @var $variable ClassName */
$variable->

IDE 现在将知道 $variable 属于 ClassName 类,并在->.

您也可以在自己的 IDE 中尝试一下。

您还可以创建一个@return中的注释getPersonalities()方法声明返回将是ClassName[],这意味着 ClassName 对象的数组:

/**
 * Returns a list of Personality objects
 * @return Personality[]
 */
function getPersonalities() {
    return $this->personalities;
}

这还取决于您的 IDE 如何解释此类提示。

要在 foreach 循环中使用它,您可以执行 1:

/* @var $existing_personality Personality */
foreach( $quiz_object->personalities as $existing_personality ){
}

or 2:

foreach( $quiz_object->getPersonalities() as $existing_personality ){
}

如果您的 IDE 足够好的话,两者都应该启用 IDE 提示。

作为额外说明,如果您想在它自己的类中使用它,则可以在声明类变量时使用相同的签名:

class MyClass
{ 

    /** 
    * @var ClassName[] $variable List of ClassName objects. 
    */ 
    var $variable;

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

PHP 在 foreach 循环中将变量转换为对象类型 的相关文章

  • PHP 下载脚本输出损坏的文件

    我正在用 PHP 为我的 CMS 构建一个文件下载类 当时我注意到它以不同的编码格式输出文件 我尝试使用 readfile file get contents fread 但似乎都在做同样的事情 这就像与输出缓冲有关的东西 我使用脚本下载的
  • PHP 的password_verify() 是否可以抵御极长的密码(DoS 攻击)?

    一般攻击场景 2013 年 Django 存在一个普遍漏洞 攻击者可以通过非常大的密码创建极其密集的 CPU 计算 请参阅此处的安全通知 https www djangoproject com weblog 2013 sep 15 secu
  • Codeigniter PHP - 在锚点加载视图

    我在一个长页面的底部有一个表单 如果用户填写了表单但它不验证页面是否以典型的 codeigniter 方式重新加载 this gt load gt view template data 然而 由于表单位于页面底部 我需要将页面加载到那里 就
  • 在 CodeIgniter 中添加新页面

    对于我对 CodeIgniter 和 MVC 系统的无知 我提前表示歉意 我正在帮助一位家庭成员处理他们的商业网站 到目前为止 我已经能够仅通过逻辑来完成大部分所需的更改 但现在我已经走进了死胡同 我不打算继续支持他们 因为我显然不是 Co
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • 在php中获取大于2GB的文件大小的最佳方法?

    我想检查本地驱动器上的文件大小windows OS 但是PHP原生函数filesize 仅当文件大小小于时才有效2GB 大于的文件2GB将返回错误的数字 那么 是否有其他方法来获取大于的文件大小2GB 非常感谢 您始终可以使用系统的文件大小
  • 查明具有特定 ID 的会话是否已过期

    我正在创建一个上传功能 将用户上传的文件存储在服务器上 并以用户的会话 ID 作为名称 现在 我只想将此文件保留在服务器上 直到该会话处于活动状态 所以 我的问题是 如何根据会话 ID 确定会话是活动的还是过期的 以便在后一种情况下我可以安
  • PHP 电子邮件验证[重复]

    这个问题在这里已经有答案了 For PHP最好的电子邮件验证方法是什么preg NOT ereg因为它是已弃用 删除 I don t需要检查该网站是否存在 这不像最高安全性 我找到了很多方法ereg但它们 显然 不是好的做法 我建议你使用F
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 使用第三方库记录来自 PHP 应用程序的所有 cURL 请求

    好吧 我的 PHP Yii2 应用程序遇到了困难 我需要记录来自应用程序的每个传入和传出请求 传入的请求可以轻松地记录在 PHP 本身中 在引导阶段添加一些处理程序 这很容易 但真正的问题是我正在使用许多第三方库 即 Amazon MWS
  • localhost/live - 通过 HTTP_HOST 检测

    假设我在本地开发并在实时服务器上调试小东西 在我的代码中添加这样的内容是个好主意吗 is local strpos SERVER HTTP HOST localhost false define DEBUG is local 然后在设置内容
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文

随机推荐

  • 有没有实现按键删除并同时获取值? [复制]

    这个问题在这里已经有答案了 我正在做一个性能关键的程序 一些学术性的东西 我希望尽可能地优化 不像它证明的 这是 瓶颈 我有一个自定义字典结构 NET 的包装器Dictionary lt gt 并且我会在一个阶段不断地删除项目 通过Key价
  • 如何使用按钮触发回调更新?

    我刚刚开始使用破折号 举个例子here https plot ly dash getting started part 2 interactivity 我想转换下面的破折号应用程序 import dash from dash depende
  • 批处理文件变量范围问题

    当尝试创建 dos Windows 7 命令行 批处理文件时 我遇到了一个奇怪的变量范围问题 该文件执行一些字符串操作来创建新的文件路径 谁能明白为什么在下面的示例中 OUTPUT FILENAME 变量总是最终为空 echo Enter
  • Java 8 元空间与堆使用

    我有这段代码可以动态生成类并加载它 import javassist CannotCompileException import javassist ClassPool public class PermGenLeak private st
  • 测试覆盖率 React,伊斯坦布尔 -_registerComponent(...):目标容器不是 DOM 元素

    我正在使用 React Redux Webpack 编写一个应用程序 我正在使用 karma mocha 构建测试 并希望使用 istanbul 进行测试覆盖 为了使覆盖范围与业力覆盖范围一起工作 我设置了以下内容karma config
  • 是否可以根据批次标签(y_true)分布更新每个批次的学习率?

    编辑 请参阅此问题的结尾以获取解决方案 TL DR 我需要找到一种方法来计算每批次的标签分布 并更新学习率 有没有办法访问当前模型的优化器来更新每批的learning rate 下面是如何计算标签分布 它可以在损失函数中完成 因为默认情况下
  • Spark 中简单的 RDD 写入 DynamoDB

    刚刚在尝试将基本 RDD 数据集导入 DynamoDB 时陷入困境 这是代码 import org apache hadoop mapred JobConf var rdd sc parallelize Array Map col1 gt
  • 有没有办法即使在 Chrome 或 Firefox 关闭时也显示桌面通知?

    我们正在开发一个使用 GCM 向最终用户发送推送通知的网站 我们已经了解了 Service Worker 等所有内容 我们用这个开发了一个原型codelab https developers google com web fundament
  • 即使用户注销后也保持节点处于运行状态

    即使用户注销 如何保持节点应用程序在 Windows 中运行 即使用户注销后 如何继续运行节点http服务器 您有 2 个不错的选择 一种是上面评论中提到的Forever https www npmjs com package foreve
  • 将文件流式传输到 S3“错误:流意外结束”

    Update 我相信这could是因为我使用的是express提供的body解析器 这是否会扰乱多方试图解析的流 我的解决方案基于这个答案 https stackoverflow com a 15830910 971592 我正在尝试做的事
  • jqgrid如何在同一列显示多个值

    我想知道如何在 jqGrid 的单列中显示多个值 这是我当前网格定义的示例 grid1 jqGrid url Default aspx getGridData datatype json colModel contains the inpu
  • np 数组之间的欧氏距离

    我有两个 numpy 数组 a 和 b a 和 b 的尺寸相同 a 的尺寸可以与 b 的尺寸不同 例如 a 1 2 5 7 b 3 8 4 7 9 15 有没有一种简单的方法来计算 a 和 b 之间的欧几里得距离 以便这个新数组可以在 k
  • JavaScript 中的应用函数

    我正在学习 JavaScript 目前正在尝试找出原因 在蜘蛛猴 https developer mozilla org en SpiderMonkey concat apply 1 2 返回预期的 1 2 but Array concat
  • 如何使用Torch生成的模型进行预测?

    我已经执行了神经网络 tutorial lua https github com nicholas leonard dp blob master examples neuralnetwork tutorial lua 现在我有了模型 我想用
  • 尝试...否则...除了语法错误

    我无法理解这个 无法运行此代码 我不知道为什么它是语法错误 try newT read existingArtist newT Exif Image Artist value existingKeywords newT Xmp dc sub
  • Android:AsyncTask 或带有 ExecutorService 的普通 Java 线程 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的应用程序使用Service做一些背景工作 我正在服务中使用额外的线程来进行一些计算 为此 我每 5 到 10 秒创建两个线程 运行 5 到
  • .NET混淆工具/策略[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的产品有几个组件 ASP NET Windows Forms App 和 Windows Service 大约 95 的代码是用 VB NET
  • firebase云函数ServerValue增量不起作用

    我有一个 firebase 功能 我想在这里增加ServerValue 但它不起作用并给出错误 我哪里做错了 我在下面附上控制台屏幕截图 注 我不太了解javascript java代码也可能有错误 const functions requ
  • 有什么方法可以监控 Airflow DAG 的执行时间吗?

    我想将 Airflow 与 Statsd 和 DataDog 一起使用来监控 DAG 是否需要例如是之前执行的两倍 所以 我需要某种用于 DAG 的实时计时器 或者operator 我知道 Airflow 支持一些指标 https airf
  • PHP 在 foreach 循环中将变量转换为对象类型

    在下面的代码中 quiz object gt personalities包含一个数组Personality对象 Loop through each personality that exists for the quiz foreach q