【问题标题】:PHP: 2objects in 1 variable. Trying to get second object [closed]PHP:1 个变量中有 2 个对象。试图获得第二个对象[关闭]
【发布时间】:2013-03-08 10:12:51
【问题描述】:

我有一个包含 2 个页面对象的变量(页面)。

页面变量的print_r:

  Page Object
(
    [blocksAliasedFromMasterCollection:protected] => 
    [cID] => 233
    [attributes:protected] => Array
        (
        )


)
Page Object
(
    [blocksAliasedFromMasterCollection:protected] => 
    [cID] => 234
    [attributes:protected] => Array
        (
        )



)
{"rel":"SITEMAP","name":"something","cID":"234"}

如何获取第二个页面对象的 cID?

【问题讨论】:

  • 我们不知道,因为这个输出肯定不是单个变量的print_r产生的,它没有意义。

标签: php variables object


【解决方案1】:

尝试使用下面的代码

if $data contains the objects then
$i=0;
foreach($data as $ar)
{
    if(++$i==2)
    {
       echo $ar->cID;
    }
}

【讨论】:

  • 这段代码给了我一个错误:关于在 if 之后期待 '('
【解决方案2】:

它不是一个单一的变量,你有一个数组。您可以使用索引访问所有元素。

$obj1 = $page[0]; // get first object
$obj2 = $page[1]; // get second object\

然后您可以正常使用该对象:

$obj2->method(); 或 $obj2->property;

【讨论】:

  • 尝试此操作时出现致命错误:无法将 Page 类型的对象用作数组中的...。
【解决方案3】:

我发布的 print_r 正如 Jon 所说的那样不正确。

发生的事情是其中包含 print_r 的函数被调用了 2 次。这就是为什么页面对象被打印了 2 次并且不在同一个变量中的原因。

在检查该函数第二次运行后,我得到了正确的页面对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2020-10-24
    • 2013-03-24
    相关资源
    最近更新 更多