如何在大型php字符串变量中设置if/else条件?
我有一个很大的php字符串变量。我想把php if/else条件放在里面,这样编辑和删除按钮就只能显示给注释的作者,而不是所有人,但是我的代码不起作用。我使用冒号来定义if/else条件,但它不起作用。常规的if/else条件也不起作用 以下是我的php代码:如何在大型php字符串变量中设置if/else条件?,php,html,Php,Html,我有一个很大的php字符串变量。我想把php if/else条件放在里面,这样编辑和删除按钮就只能显示给注释的作者,而不是所有人,但是我的代码不起作用。我使用冒号来定义if/else条件,但它不起作用。常规的if/else条件也不起作用 以下是我的php代码: $user_id = $_SESSION['user_id']; $if = "if ($user_id == $row['user_id']): "; $else = "else: "; $endif = "endif; ";
$user_id = $_SESSION['user_id'];
$if = "if ($user_id == $row['user_id']): ";
$else = "else: ";
$endif = "endif; ";
foreach($result as $row)
{
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
'. $if .'
<form class="input-group form-row" action="comment_delete1.php" method="post" enctype = "multipart/form-data">
<div class="input-group-prepend">
<input type="hidden" name="comment_id" id="comment_id" value="'.$row["comment_id"].'" />
<input type="hidden" name="user_id" id="user_id" value="'.$row["user_id"].'" />
<input type="submit" name="submit" id="submit" class="submit btn btn-default" value="Delete" />
</div>
</form>
<button type="button" class="btn btn-default edit" id="'.$row["comment_id"].'" >Edit</button>
'. $else .'
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
'. $endif .'
</div>
</div>
';
}
echo $output;
$user_id = $_SESSION['user_id'];
foreach($result as $row) {
if ($row['user_id'] === $user_id) {
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
<form class="input-group form-row" action="comment_delete1.php" method="post" enctype = "multipart/form-data">
<div class="input-group-prepend">
<input type="hidden" name="comment_id" id="comment_id" value="'.$row["comment_id"].'" />
<input type="hidden" name="user_id" id="user_id" value="'.$row["user_id"].'" />
<input type="submit" name="submit" id="submit" class="submit btn btn-default" value="Delete" />
</div>
</form>
<button type="button" class="btn btn-default edit" id="'.$row["comment_id"].'" >Edit</button>
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
</div>
</div>
';
} else if ($row['user_id'] !== $user_id) {
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
</div>
</div>
';
}
}
echo $output;
为了正确执行此操作,必须评估条件:
foreach($result as $row)
{
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">';
if ($user_id == $row['user_id']) {
$output .= '<form class="input-group form-row" action="comment_delete1.php" method="post" enctype = "multipart/form-data">
<div class="input-group-prepend">
<input type="hidden" name="comment_id" id="comment_id" value="'.$row["comment_id"].'" />
<input type="hidden" name="user_id" id="user_id" value="'.$row["user_id"].'" />
<input type="submit" name="submit" id="submit" class="submit btn btn-default" value="Delete" />
</div>
</form>
<button type="button" class="btn btn-default edit" id="'.$row["comment_id"].'" >Edit</button>';
} else {
$output .= '<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
</div>
</div>
';
}
}
echo $output;
这确实不是一个好的方法,你应该考虑重构你的代码,使它变得更整洁、更容易阅读。
< P>这里是解决方案: 如果我们将条件放在php字符串或heredoc中,php会将它们视为字符串,并在屏幕上显示为字符串。所以我们不能在字符串中有条件 我将if-else条件放在php字符串变量之外,并创建了两个php字符串变量,一个带有delete和edit按钮,另一个没有delete和edit按钮。因此,如果user_id等于session user id,将显示带有delete和edit按钮的php字符串变量。另外,如果user_id不等于session user id,则将显示不带删除和编辑按钮的php字符串变量。php字符串变量将在所有条件结束时回显 以下是php代码:$user_id = $_SESSION['user_id'];
$if = "if ($user_id == $row['user_id']): ";
$else = "else: ";
$endif = "endif; ";
foreach($result as $row)
{
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
'. $if .'
<form class="input-group form-row" action="comment_delete1.php" method="post" enctype = "multipart/form-data">
<div class="input-group-prepend">
<input type="hidden" name="comment_id" id="comment_id" value="'.$row["comment_id"].'" />
<input type="hidden" name="user_id" id="user_id" value="'.$row["user_id"].'" />
<input type="submit" name="submit" id="submit" class="submit btn btn-default" value="Delete" />
</div>
</form>
<button type="button" class="btn btn-default edit" id="'.$row["comment_id"].'" >Edit</button>
'. $else .'
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
'. $endif .'
</div>
</div>
';
}
echo $output;
$user_id = $_SESSION['user_id'];
foreach($result as $row) {
if ($row['user_id'] === $user_id) {
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
<form class="input-group form-row" action="comment_delete1.php" method="post" enctype = "multipart/form-data">
<div class="input-group-prepend">
<input type="hidden" name="comment_id" id="comment_id" value="'.$row["comment_id"].'" />
<input type="hidden" name="user_id" id="user_id" value="'.$row["user_id"].'" />
<input type="submit" name="submit" id="submit" class="submit btn btn-default" value="Delete" />
</div>
</form>
<button type="button" class="btn btn-default edit" id="'.$row["comment_id"].'" >Edit</button>
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
</div>
</div>
';
} else if ($row['user_id'] !== $user_id) {
$output .= '
<div class="panel panel-default">
<div class="panel-body">'.$row["comment"].'</div>
<div class="panel-footer">
<button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'" >Reply</button>
</div>
</div>
';
}
}
echo $output;
美元如果$其他的这些不是条件,而是变量。变量不会作为构造进行计算,而是作为字符串的一部分进行计算。是的,我将条件放在变量中。我也把条件直接放在字符串中,但这也不起作用。因为你只是把它变成一个不会被计算的字符串。那么我该怎么办呢?你需要养成习惯,这样可以帮助你解决问题。您将获得积分,并鼓励其他人帮助您。您需要重新查看前面的每个问题,以确保您正在执行此操作。我尝试过,但if/else语句本身显示在网站上,并且不起作用。是否显示PHP代码?如果您没有运行web服务器,或者访问文件不正确,或者您使用什么URL访问PHP文件?它是Windows PC中的本地主机。我不知道。你说你的XAMPP工作正常,以前从来没有出现过问题,所以我不认为有什么可以改变的,除非你修改了一些东西。