gpt4 book ai didi

php - OOP 的一个逻辑错误

转载 作者:行者123 更新时间:2023-12-03 20:52:01 24 4
gpt4 key购买 nike

我正在学习 Yii 框架。我是第一次使用框架,我需要一些建议。我的 Controller 上有一个 getSocials() 函数。

private function getSocials($id)
{
$socials=Socials::model()->find("socials_user=$id");
foreach ($socials as $social)
{
$type = $social["socials_type"];
$allSocial .= "<li><a href=\"#\" rel=\"nofollow\">$type</a></li>";
}
return $allSocial;
}

(它是私有(private)的,因为我只从另一个函数调用它)。我会逐行解释,

$socials=Socials::model()->find("socials_user=$id");

通过 Socials 模型从数据库中获取 socials_user 列等于 $id 的数据。

foreach ($socials as $social)

$socials 作为数组返回,因为数据库中有几行 socials_user 列等于 $id

$allSocial .= "<li><a href=\"#\" rel=\"nofollow\">$type</a></li>";

在 foreach 循环中,添加 <li>...</li>到字符串的末尾,所以 $allSocial 将是 <li>...</li><li>...</li>...

但是我收到了Undefined variable: allSocial 错误。当我从等号 (=) 前面删除 时,它起作用了。但是这次在 foreach 循环中,它总是覆盖并且最终 $allSocial 只包含最后一个 <li>...</li>

有没有逻辑错误?

最佳答案

$allSocial 未在任何地方定义,您不能将字符串附加到 undefined variable 。像这样尝试:

private function getSocials($id)
{
$socials=Socials::model()->find("socials_user=$id");
$allSocial = '';
foreach ($socials as $social)
{
$type = $social["socials_type"];
$allSocial .= "<li><a href=\"#\" rel=\"nofollow\">$type</a></li>";
}
return $allSocial;
}

关于php - OOP 的一个逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com