2013-07-22 52 views
-6

我當前只想在特定頁面上顯示鏈接。網站上的架構本身就是index.php?menu=<pagename>。所以我想我可以簡單地使用:Php條件不適用於html

<?php 
     echo $_GET["menu"]; 
     if($_GET["menu"] = "mMenu-Point") : 
?> 
     <a href="www.google.ch">Test</a> 
<?php 
     endif; 
?> 

執行htm-code。不過,無論「菜單」的值是什麼,代碼都會被執行。我通過回聲測試了這個問題,它奇怪地使我獲得了正確的值。

我希望你能解釋爲什麼這不起作用。

非常感謝您的時間和精力!

+3

'='是賦值。 '=='是條件檢查 – karthikr

+1

你正在分配一個值,而不是檢查它是否在你的條件下 – stackErr

回答

3

嘗試

if($_GET["menu"] == "mMenu-Point") : 

目前正在設置(=)$_GET["menu"]沒有比較它(==)

+0

*嘆*我很笨,嘗試了所有其他變體後,我忘記了一個工程。非常感謝您的快速幫助! – user2425234

+0

這不是愚蠢的,這是我們在某個時候所做的一件事,另一件讓人感到意外的事情是如果他們不小心把一個;之後如果 – Anigel

3

賦值運算符(=)來賦值給一個變量,元素數組的屬性或對象的屬性

等號運算符(==)用於比較兩個值或表達式。它用於比較數字,字符串,布爾值,變量,對象,數組或函數。

您在這裏使用賦值運算符=。你需要

if($_GET["menu"] == "mMenu-Point") : 

希望這有助於!

0

雙 「=」:

if($_GET["menu"] == "mMenu-Point") 
0
if($_GET["menu"] == "mMenu-Point") : 

拖 「=」 請

1

您使用賦值運算符(這是一等於)您需要使用比較操作符(==)或甚至(===對於精確匹配)

http://php.net/manual/en/language.operators.comparison.php

所以你需要使用:

if ($_GET["menu"]) == "mMenu-Point") : 

對於比較字符串,我會建議使用精確匹配運營商===