2016-11-23 49 views
0

林在Ubuntu 16.04,使用Laravel 5.3当运行此代码:Laravel给我数组到字符串转换的错误,我做错了什么?

echo "<pre>"; 
    print_r($currentSessions[0]); 
    echo "</pre>"; 

    echo "<pre>"; 
    print_r($lmirOrder); 
    echo "</pre>"; 

这些被返回:

$ currentSessions [0]是:

stdClass Object 
(
[iID] => 484444768 
[bStatus] => SESSION_ONHOLDBUTCUSTOMERLEFT 
[sStatus] => Closed by waiting customer 
[iEntry] => 404466296 
[sEntry] => Technical Support 
[iTechnician] => 17536581 
[sTechnician] => Removed 
[sStartTime] => 11/23/2016 2:48:35 PM 
[iWaitingTimeInSec] => 2 Hours 
[sCustomField0] => removed 
[sCustomField1] => removed 
[sCustomField2] => Array 
    (
     [phoneNumber] => removed 
     [emailAddress] => removed 
    ) 

[sCustomField3] => 
[sCustomField4] => 
[sCustomField5] => 
[sLanguage] => en 
[sTransferredTo] => 
[sTransferredComment] => 
[bIsLead] => 1 
[bHandingOff] => 
) 

$ lmirOrder是:

Array 
(
[1] => sTechnician 
[2] => sCustomField0 
[3] => sCustomField2[phoneNumber] 
[4] => sStatus 
[5] => sStartTime 
[6] => sCustomField1 
[7] => iWaitingTimeInSec 
[8] => sCustomField2[emailAddress] 
) 

为什么我回显时出现“数组到字符串转换”错误:

echo $currentSessions[0]->$lmirOrder[4]; 

任何帮助将不胜感激!

+1

这是PHP做什么:'回波{$ currentSessions [0] - > $ lmirOrder} [2];'现在想$ lmirOrder'是什么类型',它被用作属性名称。 – Rizier123

+0

@ Rizier123我没有意识到这一点,但这是完全合理的。无论如何,我可以解决这个问题? –

+0

你是怎么形成这个数组'$ currentSessions [0]'的? – Michel

回答

0

这是由于$currentSessions[0]->$lmirOrder[4]语句实际上被解释为{$currentSessions[0]->$lmirOrder}[4],导致在对象上查找属性Array

<?php 

$a = new stdClass(); 
$a->test = 'Hello World'; 
$a->Array = "You didn't want me"; 

$b = ['test']; 

// Notice: Array to string conversion in php shell code on line 6 
// string(1) "Y" 
var_dump($a->$b[0]); 

// string(11) "Hello World" 
var_dump($a->{$b[0]});