0

我的应用程序中有一些关注/取消关注和阻止/取消阻止功能。它们工作正常,并且正确的数据正在填充我的数据库。以下是我的逻辑大纲:

if($this->user_is_followed) {
    //show unfollow button
}else {     
    //show follow button

}

if($this->user_is_blocked) {    
    //show unblock button
}else {
    //show block button
}

一个问题:我需要为这两种情况链接关注/取消关注和阻止/取消阻止功能:

1 - 如果用户正在关注某人并单击阻止按钮,则应阻止和取消关注该用户(现在,该用户被阻止,但未取消关注)

2 - 如果用户阻止某人,并单击关注按钮,则应关注并取消阻止该用户(现在,该用户被关注,但未取消阻止)

我尝试使用 -while- 来链接这两个函数,但没有任何显示,甚至没有错误,只是一个空白屏幕:

这是我对 while 逻辑的尝试:

    if($this->user_is_followed) {
        while($this->user_is_blocked) {
            //show unfollow button
        }
    }       
    else if($this->user_is_blocked) {
        while($this->user_is_followed) {        
        //show follow button 
        }       
    }

简而言之,我试图找出我可以为此使用的 php 控制结构。是-同时-还是别的什么?

4

2 回答 2

1

第一个就可以了,这取决于您是否可以同时被跟踪和阻止。

由于看起来您正在为内联输出执行此操作,因此您可能只想将其压缩为三元:

<?php echo ($this->user_is_followed ? 'unfollow button' : 'follow button'); ?>

如果你有大量的标记,三元组会很糟糕,因为在 php 中回显 html 通常是一个愚蠢的想法。但是,如果您在类上使用 jquery 之类的库和侦听器,则可以在标签上分配“已关注”或“未关注”类<a>,然后根据 css 显示...希望这是有道理的。

于 2012-10-25T01:46:12.287 回答
0

你之前的逻辑大纲没有错。

if($this->user_is_followed {
    //show unfollow button
}
else {      
    //show follow button
}
if($this->user_is_blocked) {    
    //show unblock button
}
else {
    //show block button
}

唯一会发生的变化是控制您的关注、取消关注、阻止和取消阻止按钮。因为在显示按钮时不需要执行任何操作吗?所以这两种情况应该在单击按钮后发生,而不是在显示按钮时发生。我建议根据您想要发生的场景为您的关注、取消关注、阻止和取消阻止按钮创建功能。

于 2012-10-25T01:48:24.747 回答