从 codeception 对象访问数组值

Posted

技术标签:

【中文标题】从 codeception 对象访问数组值【英文标题】:Access array value from codeception object 【发布时间】:2015-11-26 10:45:50 【问题描述】:

我在 php53 上所以 codeception 1.8

$response = (array)$I->grabDataFromJsonResponse("result");
\Codeception\Util\Debug::debug($response);

  Array
  (
      [*position] => 0
      [*val] => Array
          (
              [key1] => 10
              [key2] => 1
          )

      [*assocArray] => 1
  )

现在当我尝试访问数组中的值时,它给了我错误

\Codeception\Util\Debug::debug($response['key1']);

[ErrorException] Undefined index: key1

【问题讨论】:

应该如此。试试\Codeception\Util\Debug::debug($response['*val']['key1']); @Calimero 我试过了,说“未定义的索引:*val”如何获取值? $response[0]['*val']['key1'] @MA-Maddin 注意:未定义的偏移量:0 【参考方案1】:

这是因为Object -> array conversion

要访问受保护的属性(以 * 开头),您必须包含周围的空字节:

$response["\0*\0val"]['key1']

(注意双引号)

【讨论】:

这行得通!但是,我也在寻找一个答案,我可以使用 codeception BDD 样式 API 直接从响应中获取数组。 grabDataFromJsonResponse 不这样做吗? @Naktibalda grabDataFromJsonResponse 在涉及数组时无法选择路径。有什么建议吗?

以上是关于从 codeception 对象访问数组值的主要内容,如果未能解决你的问题,请参考以下文章

PhantomJS 无法访问自签名 HTTPS 页面 Codeception

DECE 通用文件格式 (UltraViolet)

如何使用角度 7 从对象数组中返回 userPass 的值?

如何从 codeception & phantomjs 测试中获取当前 url?

创建和访问类对象的动态数组

如何访问类对象内的数组值?