我在解决这个问题时遇到了最艰难的时期,但我似乎找不到答案。
这就是我想要做的:根据部分,我的网站上有不同的导航菜单。我已经预先构建了不同的变体,并在每个页面上声明 $linkbox_array,这是我在该页面上的导航菜单的链接数组。在某些页面上,我水平显示,而在其他页面上垂直显示。垂直时,我需要在堆叠的链接框底部添加免责声明。
所以我的函数试图这样说:如果 $linkbox_array 是 $general_linkboxes 并且 $bodyClass 是“withSidebar”,则在数组项 2 之后回显免责声明。否则,只需回显数组项。
所以这就是我写的(如果它很糟糕,请原谅我,我是新手):
function display_linkboxes($array) {
if ($linkbox_array == $general_linkboxes && $bodyClass = "withSidebar") {
foreach ($array as $linkbox) {
if ($linkbox == $array[2]) {
echo $linkbox;
global $general_disclaimer;
echo $general_disclaimer;
} else {
echo $linkbox;
}
}
} else {
foreach ($array as $linkbox) {
echo $linkbox;
}
}
}
问题在于,即使这两个条件不成立,它也会不断吐出 $general_disclaimer。我试图解构这个函数并找出我哪里出错了,我意识到我的 if 语句总是评估为 true,即使我加入了胡言乱语。例如:
function display_linkboxes($array) {
if ($linkbox_array == $askjfdalfjk) {
foreach ($array as $linkbox) {
echo $linkbox;
}
}
}
即使 $askjfdalfjk 不存在,这也会评估为 true 并显示链接。然后我在下面遇到了相反的问题。即使 if 语句的计算结果为 true,这也不会显示链接:
function display_linkboxes($array) {
if ($bodyClass == "withSidebar") {
foreach ($array as $linkbox) {
echo $linkbox;
}
}
}
我到底做错了什么?!?!任何帮助是极大的赞赏!