[英]Fatal error: Cannot use string offset as an array?
在我的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不太滿意。 有人可以伸出援手嗎?
PS我加了break;
在最后一個回聲之后,它解決了,但我認為這不是解決問題的方法。
$result['info']
顯然是一個字符串,而不是一個數組。
嘗試一下。在第99行中,最后不應該使用,
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. }
您已在循環中使用$result['info']
。 有時應該未設置$result['info']
子數組。 看來您不需要運行循環。 因為您一次將只有一個用戶信息。 或者您可以像這樣使用break:
foreach ($response as $result) {
$provider = strtolower($result['provider']);
$user = array(
'provider' => $result['provider'],
'id' => $result['uid'],
'name' => isset($result['info']['name']) ? $result['info']['name'] : '',
'image' => isset($result['info']['image']) ? $result['info']['image'] : '',
'link' => isset($result['info']['urls'][$provider]) ? $result['info']['urls'][$provider] : ''
);
print_r($user);
echo "<h1>" . $user['provider'] . "</h1>";
echo "<p>" . $user['id'] . "</p>";
echo '<p><img src="' . $user['image'] . '" /></p>';
echo "<p>" . $user['name'] . "</p>";
echo "<p>" . $user['link'] . "</p>";
break;
}
您將$ result ['info']聲明為字符串,然后再嘗試將其用作數組。 嘗試var_dump $ result ['info']。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.