【发布时间】:2014-01-17 08:35:10
【问题描述】:
在我的 foreach 中,我看到以下错误:
致命错误:不能将字符串偏移量用作数组 [..] 第 97 行
88. foreach ($response as $result) {
89. if($result['provider'] == 'Facebook') {
90. $provider = 'facebook';
91. }else{
92. $provider = 'twitter';
93. }
94. $user = array(
95. 'provider' => $result['provider'],
96. 'id' => $result['uid'],
97. 'name' => $result['info']['name'],
98. 'image' => $result['info']['image'],
99. 'link' => $result['info']['urls'][$provider],
100. );
101. echo "<h1>".$user['provider']."</h1>";
102. echo "<p>".$user['id']."</p>";
103. echo '<p><img src="'.$user['image'].'" /></p>';
105. echo "<p>".$user['name']."</p>";
106. echo "<p>".$user['link']."</p>";
107. }
我尝试在网上阅读以了解问题所在,但似乎有些问题与我的无关。我也应该拿出它,让你知道我对 PHP 不是很好。有人可以帮忙吗?
附注我在最后一个回声之后添加了break; 并解决了它,但我认为这不是解决问题的方法。
【问题讨论】:
-
var_dump($response) 的输出是什么;或 var_dump($result['provider']);
-
做一个
$result['info']的var_dump。可能不包含代码建议的内容。 -
@rccoros var_dump($result['provider'] 返回 string(1) "2"。这很奇怪。
-
这意味着 $response 是字符串而不是数组
-
@sanjeev is_array($response);返回真。