HELP!! 关于Can't use string offset as an array的问题 .急!

willlou 2009-05-09 10:42:51
现有一个数组$get,
print_r($get) 得到一个数组
Array
(
[OrderID] => F0DN4U
[OrderSeqNo] => 10666215
[OperationDate] => 20090509
[OperationTime] => 064702
[Itinerary] => Array
(
[CheckInDate] => 20090515
[CheckOutDate] => 20090518
)
)
当我输出$get['Itinerary']['CheckInDate']的时候,就出现Can't use string offset as an array的报错
在本地测试的时候能正常运行,一到服务器上就出现这个报错
...全文
4659 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
willlou 2009-05-09
  • 打赏
  • 举报
回复
呵呵,搞定了,还是得定义一下$get['Itinerary'], $get['Itinerary']=(array)$get['Itinerary']; 加个这个就可以了。
Thank you , all!
willlou 2009-05-09
  • 打赏
  • 举报
回复
Array
(
[OrderID] => F0DN9G
[OrderSeqNo] => 10666478
[Status] => NN
[Source] => HBE
[ExtOrderID] => F0DN9G
[NoticeStatus] => Array
(
)

[AgentID] => CGO321
[AgentOperator] => Array
(
)

[TBTag] => Array
(
)

[OperationDate] => 20090509
[OperationTime] => 113559
[ConfirmMethod] => Array
(
)

[Itinerary] => Array
(
[CheckInDate] => 20090521
[CheckOutDate] => 20090523
[ArrivalEarlyTime] => 120000
[ArrivalLateTime] => 163000
[PropertyInfo] => Array
(
[PropertyID] => 1E57J
[PropertyName] => 安吉中汇大酒店
[HtlID] => 57J
[CityCode] => ANJ
[CityName] => 安吉
[Rank] => 3
[EliteStatus] => N
)

[RoomInfo] => Array
(
[RoomType] => DB005
[RoomName] => 标准间
[RoomQuantity] => 1
[RoomNight] => 2
)

[RateInfo] => Array
(
[RateCode] => TSN
[Currency] => CNY
[AvgDailyRate] => -1.0
[TotalRate] => 560.0
[ExtraCharge] => 0.0
[PaymentMethod] => T
[BalPrice] => 0.0
)

)
这是die()得到的数据,在下面插入数据的时候就报错了
phpboy 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 willlou 的回复:]
print_r($get['Itinerary']['CheckInDate']);

Fatal error: Cannot use string offset as an array in D:\V-Host\HT03\lianzhongjq\web\application\models\HotelCity.php on line 195

结果就是这样子了

[/Quote]

print_r( $get );
willlou 2009-05-09
  • 打赏
  • 举报
回复
print_r($get['Itinerary']['CheckInDate']);

Fatal error: Cannot use string offset as an array in D:\V-Host\HT03\lianzhongjq\web\application\models\HotelCity.php on line 195

结果就是这样子了
phpboy 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 willlou 的帖子:]
现有一个数组$get,
print_r($get) 得到一个数组
Array
(
[OrderID] => F0DN4U
[OrderSeqNo] => 10666215
[OperationDate] => 20090509
[OperationTime] => 064702
[Itinerary] => Array
(
[CheckInDate] => 20090515
[CheckOutDate] => 20090518
)
)
当我输出$get['Itinerary']['CheckInDate']的时候,就出现Can't use string offset as an array的报错
在本地测试的时候能正常运行,一到服务器上就出现这个报错
[/Quote]

在服务器上有没有 print_r 出来看一下
fishsean 2009-05-09
  • 打赏
  • 举报
回复
我也是从别处看到的:不知道有没帮助

Can't use string offset as an array解决办法
这个问题是因为PHP5.X对String和数组的规定严格了
$far='boo';
$far[1][]='boo';
运行这段脚本就会产生这样的错误。改正也非常简单,只要加一句:
$far='boo';
$far=array();
$far[1][]='boo';
问题解决!解决这个问题也非常容易,把那个接口文件的包含Channel.inc.php改为Channeltest.inc.php,把Include文件夹下的这个文件复制另存一个命名为:Channeltest.inc.php,在$TEMP变量上上加一句:$TEMP=array();即可正常发表了。
willlou 2009-05-09
  • 打赏
  • 举报
回复
大家来帮忙啊!!!自己先顶了,,

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧