私はこの問題を理解するのに最も苦労していて、答えを見つけることができないようです。
これが私がやろうとしていることです:私はセクションに応じて私のウェブサイトに異なるナビゲーションメニューを持っています。私はすでにさまざまなバリエーションを事前に作成しており、各ページで$ 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;
}
}
}
問題は、2つの条件が真でない場合でも、$general_disclaimerを吐き出し続けることです。関数を分解して、どこが間違っているのかを突き止めようとしましたが、ジバーリッシュを入れても、ifステートメントは常にtrueと評価されることに気付きました。例えば:
function display_linkboxes($array) {
if ($linkbox_array == $askjfdalfjk) {
foreach ($array as $linkbox) {
echo $linkbox;
}
}
}
これはtrueと評価され、$askjfdalfjkが存在しない場合でもリンクを表示します。次に、以下の反対の問題があります。ifステートメントがtrueと評価されたとしても、これはリンクを表示しません。
function display_linkboxes($array) {
if ($bodyClass == "withSidebar") {
foreach ($array as $linkbox) {
echo $linkbox;
}
}
}
いったい何が間違っているのですか?!?!どんな助けでも大歓迎です!