将php if / else语句嵌套在变量

时间:2018-11-06 15:58:21

标签: php variables if-statement

我想在包含中放入if / else语句,但无法解决。结果是该语句以纯文本形式发布。

请参见this page

基本文件sample.php

<?php include "include.php";?>
<?php $name = "Menu 1";?>
<html>
<body>      
<?php echo $showMenu ;?>    
</body>
</html>

包含文件include.php

<?php
$showMenu='if($name=="Menu 1")
{echo "Menu 1";}
else
{echo "Menu 2";}';
?>

如果我是对的,问题出在include.php文件中,但不知道如何调整include中的if / else语句以使其正常工作。如果将if / else语句内联到sample.php文件中,它将起作用。

5 个答案:

答案 0 :(得分:0)

您不能将代码放在字符串中并期望它被执行。您可以 使用exec来执行字符串,但是除非您完全理解其影响,否则每个人都会告诉您从不使用exec

您上面可以做的是:

if ($name == 'Menu 1') {
    $showMenu = 'Menu 1';
} else {
    $showMenu = 'Menu 2';
}

然后sample.php必须看起来像这样:

<?php 
    $name = 'Menu 1';
    include 'include.php';
?>
<html>
  <body>
    <?= $showMenu ?>
  </body>
</html>

答案 1 :(得分:0)

多数民众赞成在字符串中,而不是真正的代码。

将代码变成函数是一种更好的做法

include.php

<?php
function showMenu($name)
    if($name=="Menu 1") {
        $ret = "Menu 1";
    }else{
        $ret = "Menu 2";
    }
    return $ret;
}
?>

然后在包含该文件的任何代码中,您都可以调用该函数。这也意味着,直到您实际调用它之后,该代码才会运行,而不是仅仅因为包含文件包含在另一个脚本中而运行它。

<?php 
include "include.php";
?>
<html>
<body>      
<?php echo showMenu("Menu 1")?>    
</body>
</html>

答案 2 :(得分:0)

PHP不能这样工作。

您需要使用标准的if / else语句,从那里您可以回显您想要的结果,也可以将字符串连接到一个变量,然后您可以将其用于以后的任何事情。

您可以以此为基本起点:

<?php
if ($name == "Menu 1")
{
    echo "Menu 1";
}
else
{
    echo "Menu 2";
}
?>

一种更性感的方法是使用三元运算符,字符串连接和/或使用自定义函数,但一次只能执行一次。

答案 3 :(得分:0)

我假设您可能正在使用PHP 5,并且您来自JS World。您不能像在Javascript中那样将变量分配给函数。最好的解决方案如下:

sample.php

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

    <?php include('include.php'); ?>

    <?php show("Menu 1"); ?>

  </body>
</html>

include.php

<?php


function show($string){
  if($string == "Menu 1"){
    echo "Menu 1";
  }else{
    echo "Menu 2";
  }
}


 ?>

答案 4 :(得分:0)

我尝试了使用函数的建议,但是没有成功。 我通过将php if / else语句放到另一个文件中解决了这个问题,然后调用了include,它现在非常适合。我将尝试使该功能正常工作,因为这似乎是一种更专业的解决方案。