我想在包含中放入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文件中,它将起作用。
答案 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,它现在非常适合。我将尝试使该功能正常工作,因为这似乎是一种更专业的解决方案。