PHP函数出现“Warning: Array to string conversion in”错误的排查咨询
问题分析:Array to string conversion错误原因及修复方案
嘿,我一眼就发现你代码里的问题啦!那个「Warning: Array to string conversion」警告,根源就在这一行:
$html = '<div class="user-distance mt-2">'.$userDisplayData.'</div>';
错误原因
你看,$userDisplayData是一个数组,里面存的是一个个<div>标签字符串。但PHP里不能直接把数组和普通字符串拼接——当你这么做的时候,PHP会强行把数组转换成字符串,结果就是输出"Array"这个词,同时抛出那个警告,最后你的HTML里只会显示Array而不是你想要的标签。
修复方案
有两种简单的解决办法,选哪种都可以:
方法1:用implode()把数组转成字符串
implode()函数能把数组里的所有元素拼接成一个完整的字符串,刚好符合你的需求:
function getSwipableUsers() { $expInt = explode(',', $f['interests']); $userDisplayData = array(); foreach($expInt as $ints){ $userDisplayData[] = "<div class='tag alert-primary'>".$ints."</div>"; } // 把数组元素拼接成单个字符串 $interestsHtml = implode('', $userDisplayData); $html = '<div class="user-distance mt-2">'.$interestsHtml.'</div>'; return $html; }
方法2:直接在循环里构建字符串(更简洁)
其实你完全可以不用数组,直接在循环里把标签拼接到一个字符串变量里:
function getSwipableUsers() { $expInt = explode(',', $f['interests']); $interestsHtml = ''; foreach($expInt as $ints){ $interestsHtml .= "<div class='tag alert-primary'>".$ints."</div>"; } $html = '<div class="user-distance mt-2">'.$interestsHtml.'</div>'; return $html; }
这两种方法都能帮你消除警告,输出正确的标签内容~
内容的提问来源于stack exchange,提问作者Shubham Jha
相关产品推荐
相关产品推荐

