PHP为变量分配条件语句?

时间:2012-04-12 15:38:51

标签: php

我有一个包含表结构的变量,我想在表中添加php代码。我已经尝试将代码语句添加到变量中,然后在表中获取变量数据,但我认为这是不可能的,这样做的正确方法是什么。

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">**ADD CODE HERE**</td></tr>
        </table>';
echo $table;

以下是我想在列中添加的代码:

if($_SESSION['Mmsg']['Mreg-err'])
    {
        echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-err']);
    }       
if($_SESSION['Mmsg']['Mreg-success'])
    {
        echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-success']);
    }

我尝试在$ notification中添加代码,然后添加

$notification='if($_SESSION['Mmsg']['Mreg-err'])
    {
    echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-err']);
    }       
    if($_SESSION['Mmsg']['Mreg-success'])
        {
        echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
        unset($_SESSION['Mmsg']['Mreg-success']);
        }';
  

'。 $通知。 “

表内如:

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
            <td width="638" valign="top">' . $notification . '</td></tr>
            </table>';
echo $table;

但是不可能,有没有办法实现这个目标?我是新手

5 个答案:

答案 0 :(得分:3)

编辑添加了你的unsets ...

if($_SESSION['Mmsg']['Mreg-err'])
    $notification = '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
if($_SESSION['Mmsg']['Mreg-success'])
    $notification = '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';

unset($_SESSION['Mmsg']['Mreg-err']);
unset($_SESSION['Mmsg']['Mreg-success']);

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">' . $notification . '</td></tr>
        </table>';
echo $table;

答案 1 :(得分:1)

你能把你想要的内容放到$ notification变量吗?

   var $notification=""; // is 'var' idiomatic PHP? Not used it much lately.
   if($_SESSION['Mmsg']['Mreg-err'])
     {
       $notification= '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';  
       unset($_SESSION['Mmsg']['Mreg-err']);     
     }
  if($_SESSION['Mmsg']['Mreg-success'])
     {
        $notification = $notification . '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
         unset($_SESSION['Mmsg']['Mreg-success']);
   } 

  $table='<table border="1" cellspacing="0" cellpadding="0"><tr>             <td width="638" valign="top">' . $notification . '</td></tr>             </table>';     
  echo $table; 

然而,对我来说,有几件事情对我来说很奇怪。

首先,为什么有错误或成功消息的单独Session变量?为什么没有$_SESSION['Mmsg']['Mreg-outcome']?那你就不需要那样切换了。

你还需要echo桌子吗?为什么不让页面可以使用$notification变量,然后让表格在页面中执行以下操作:

<table><tr><td>$notification</td></tr></table>

最后,除了显示表格数据之外,最好不要使用该表,否则你会让小猫哭泣。看起来很可疑,好像您可能计划将其用于页面格式化。

答案 2 :(得分:1)

<?php
    // snipped code
    $table='<table border="1" cellspacing="0" cellpadding="0"><tr>
           <td width="638" valign="top">' . $notification . '</td></tr>
           </table>'
    echo $table;
    // snipped code
?>

这可以像这样重写:

<?php
    // snipped code
?>
<table border="1" cellspacing="0" cellpadding="0">
    <tr>
        <td width="638" valign="top"><?=$notification?></td>
    </tr>
</table>
<?php
    // snipped code
?>

更清洁,不是吗?

if语句也有替代语法,我觉得更容易理解。

<?php
// snipped code
if($_SESSION['Mmsg']['Mreg-err'])
{
echo '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';
    unset($_SESSION['Mmsg']['Mreg-err']);
}       
if($_SESSION['Mmsg']['Mreg-success'])
    {
    echo '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
    unset($_SESSION['Mmsg']['Mreg-success']);
    }
// snipped code
?>

这可以改写:

<?php
// snipped code
?>

<?php if($_SESSION['Mmsg']['Mreg-err']): ?>
    <div class="err"><?=$_SESSION['Mmsg']['Mreg-err']?></div>
    <?php unset($_SESSION['Mmsg']['Mreg-err']); ?>
<?php endif; ?>
<?php if($_SESSION['Mmsg']['Mreg-success']): ?>
    <div class="success"><?=$_SESSION['Mmsg']['Mreg-success']?></div>
    <?php unset($_SESSION['Mmsg']['Mreg-success']); ?>
<?php endif; ?>

<?php
// snipped code
?>

现在,如果发生任何错误,调试和跟踪会更容易。

答案 3 :(得分:0)

您正在做的事情完全正确,只是您没有正确地为通知变量分配值。这应该现在有效。

 if($_SESSION['Mmsg']['Mreg-err'])
 {
   $notification= '<div class="err">'.$_SESSION['Mmsg']['Mreg-err'].'</div>';  
   unset($_SESSION['Mmsg']['Mreg-err']);     
 }
if($_SESSION['Mmsg']['Mreg-success'])
 {
    $notification = $notification . '<div class="success">'.$_SESSION['Mmsg']['Mreg-success'].'</div>';
     unset($_SESSION['Mmsg']['Mreg-success']);
 } 

$table='<table border="1" cellspacing="0" cellpadding="0"><tr><td width="638" valign="top">' . $notification . '</td></tr></table>';     
echo $table; 

答案 4 :(得分:0)

你的问题不明确。我想猜测你的问题是什么,试试这个:

$table='<table border="1" cellspacing="0" cellpadding="0"><tr>
        <td width="638" valign="top">' . htmlentities($notification) . '</td></tr>
        </table>';
echo $table;

看看是否有效