【问题标题】:Php condition doesn't work for html [closed]PHP条件不适用于html [关闭]
【发布时间】:2013-07-22 14:10:44
【问题描述】:

我目前只想在某个页面上显示链接。网站本身的架构超过了index.php?menu=<pagename>。所以我想我可以简单地使用:

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

执行 htm 代码。但是,无论“菜单”的值是什么,似乎都将执行代码。我通过 echo 对此进行了测试,这奇怪地让我得到了正确的值。

我希望你能解释一下为什么这不起作用。

非常感谢您的时间和努力!

【问题讨论】:

  • = 是分配。 == 是条件检查
  • 您正在分配一个值,而不是在您的 if 条件中检查它

标签: php html if-statement


【解决方案1】:

试试

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

目前您正在设置 (=) $_GET["menu"] 而不是比较它 (==)

【讨论】:

  • 叹息我太笨了,在尝试了所有其他变体之后,我忘记了那个有效的变体。非常感谢您的快速帮助!
  • 这并不愚蠢,这是我们都曾经做过的事情,另一个让人抓狂的是,如果他们不小心放了一个 ;在 if 之后
【解决方案2】:

赋值运算符 (=) 用于为变量、数组元素或对象的属性赋值

相等运算符 (==) 用于比较两个值或表达式。它用于比较数字、字符串、布尔值、变量、对象、数组或函数。

您在此处使用赋值运算符=。你需要

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

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    您使用赋值运算符(即一等于)您需要使用比较运算符(==)甚至(=== 精确匹配)

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

    所以你需要使用:

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

    为了比较字符串,我建议使用完全匹配运算符===

    【讨论】:

      【解决方案4】:

      双“=”:

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

      【讨论】:

        【解决方案5】:
        if($_GET["menu"] == "mMenu-Point") :
        

        tow "="请

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-09
          • 2013-01-27
          • 2021-06-30
          • 2020-01-20
          • 2020-07-04
          相关资源
          最近更新 更多