Da 10
einen "truthy" Wert ist, wird die Bedingung immer wahr sein. Sie haben grundsätzlich
if($link == 8 || true) {
weil 10 == true
ist in der Tat wahr.
Sie sollten es auf beiden anpassen
if ($link == 8 || $link == 10) {
oder Sie können in_array()
verwenden, wenn Sie viele Werte
if (in_array($link, array(8, 10)) {
zu erhalten beginnen Wenn Sie möchten, können Sie strengen Vergleich verwenden - wenn (und nur wenn) $link
ist eine ganze Zahl. Dann hätten Sie drei Gleichheiten, die den gleichen Wert und des gleichen Typs benötigen. Dies liegt daran, dass PHP schwach typisiert ist, so dass Typen standardmäßig nicht verglichen werden (und als Ergebnis können Sie verschiedene Typen vergleichen und ein gültiges Ergebnis haben). Mit dem strikten Vergleich können Sie besser steuern, welche Art von Variablen Sie vergleichen.
if ($link === 8 || $link === 10) {
Ihre 'if' Erklärung zu bekommen, ist falsch (und Tests immer als wahr). Es sollte 'if ($ link == 8 || $ link == 10)' –
Vielen Dank. Jetzt verstehe ich die Theorie dahinter. – veenu