我有6个html选择框。每个选择框包含三个值(最近媒体,流行媒体,评论媒体),我有变量$item->content1
到$item->content6
每个变量返回到选择框。我在下面用switch语句创建了这段代码,因为我想一次使用switch语句而不是6次使用它。
代码工作但每次都返回到最近媒体而不返回流行和评论媒体。我如何正确解决这个问题,直到我的代码正确并返回所有情况?
function YPE_bsn_show_diffcontent(&$item_output, $item) {
switch (true) {
case ($item->content1 == 'recent-media' OR $item->content2 == 'recent-media' OR $item->content3 == 'recent-media' OR $item->content4 == 'recent-media' OR $item->content5 == 'recent-media' OR $item->content6 == 'recent-media'):
YPE_Bsn_Content::YPE_bsrecent_media($item_output, $item);
break;
case ($item->content1 == 'popular-media' OR $item->content2 == 'popular-media' OR $item->content3 == 'popular-media' OR $item->content4 == 'popular-media' OR $item->content5 == 'popular-media' OR $item->content6 == 'popular-media'):
YPE_Bsn_Content::YPE_bspopular_media($item_output, $item);
break;
case ($item->content1 == 'comment-media' OR $item->content2 == 'comment-media' OR $item->content3 == 'comment-media' OR $item->content4 == 'comment-media' OR $item->content5 == 'comment-media' OR $item->content6 == 'comment-media'):
YPE_Bsn_Content::YPE_bscomments_media($item_output, $item);
break;
default:
$item_output .= 'You don\'t selected content for first column';
break;
}
}
答案 0 :(得分:1)
您没有切换变量而是常量,那么结果始终是相同的
switch (true) {
case
.....
}
切换正确的相关var
switch ($item->content1 ) {
case 'recent-media':
your code fo recent media
break;
....
case 'popular-media':
your code fo popular media
break;
case 'comment-media':
your code fo comment media
break;
}
基本上你以错误的方式使用swithc看看php doc是否正确使用
在你的情况下你需要if(而不是切换)
function YPE_bsn_show_diffcontent(&$item_output, $item) {
if ($item->content1 == 'recent-media' OR
$item->content2 == 'recent-media' OR
$item->content3 == 'recent-media' OR
$item->content4 == 'recent-media' OR
$item->content5 == 'recent-media' OR
$item->content6 == 'recent-media') {
YPE_Bsn_Content::YPE_bsrecent_media($item_output, $item);
return;
}
if ($item->content1 == 'popular-media' OR
$item->content2 == 'popular-media' OR
$item->content3 == 'popular-media' OR
$item->content4 == 'popular-media' OR
$item->content5 == 'popular-media' OR
$item->content6 == 'popular-media') {
YPE_Bsn_Content::YPE_bspopular_media($item_output, $item);
return;
}
if ($item->content1 == 'comment-media' OR
$item->content2 == 'comment-media' OR
$item->content3 == 'comment-media' OR
$item->content4 == 'comment-media' OR
$item->content5 == 'comment-media' OR
$item->content6 == 'comment-media') {
YPE_Bsn_Content::YPE_bscomment_media($item_output, $item);
return;
}
$item_output .= 'You don\'t selected content for first column';
return ;
}