PHP从IF语句变量为var赋值

时间:2011-03-07 16:14:11

标签: php

我有这样的事情:

$msg    = '';
$var1   = 'image';
$var2   = 'class';
$var3   = 'This '.$var1.' has this class assigned:'.$var2;

if($E == 0) {
    $msg   = $var3;
} else {
    $var1  = 'no image'; 
    $var2  = 'no class'; 
    $msg   = $var3;
};

echo $msg;

我希望能够使用修改后的结果显示$ var3,但它不起作用...... 谢谢你的答案,但我想我必须澄清

对此感到抱歉..

问题不在于测试的值($ E == 0)..我的问题是在两种情况下结果都是相同的,$ var1和$ var2不会改变......

结果两种情况都是一样的: echo $ msg;将生成“此图像已分配此类:类”

我认为是因为$ var3之外的if组成而且不能从IF语句中改变..

6 个答案:

答案 0 :(得分:3)

也许是这样的:

if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;

答案 1 :(得分:2)

你必须写一个函数

function var3($v1,$v2)
{
   return 'This '.$v1.' has this class assigned:'.$v2;
}

以这种方式使用此功能:

$msg='';
$var1='image';
$var2='class';
$var3=var3($var1,$var2);
if($_POST['number']) {$msg=$var3;} 
    else 
        {
         $var1='no image'; 
         $var2='no class'; 
         $msg=var3($var1,$var2);
         };

echo $msg;

答案 2 :(得分:0)

使用此条件:

if (isset($_POST['number']) AND strlen($_POST['number'])) {
...

答案 3 :(得分:0)

使用类似的东西:

if(empty($_POST['number'])) {
  $var1='no image'; 
  $var2='no class'; 
} else {
  $var1='image';
  $var2='class';
}

echo sprintf('This %s has this class assigned:%s', $var1, $var2);

sprintf很有趣! (并且有用)

答案 4 :(得分:0)

您可以使用sprintf来实现您的目标:

$var1='image';
$var2='class';
$format ='This %s has this class assigned: %s';

if(! isset($_POST['number']) || ! $_POST['number']) {
    $var1='no image'; 
    $var2='no class'; 
};

$msg = sprintf($format, $var1, $var2);

我冒昧地改善你的状况。

答案 5 :(得分:0)

这里是你的问题解决方案

$味精= '';

$ VAR1 = '图像';

$ VAR2 = '类';

$ var3 ='这'。$ var1。'已分配此类:'。$ var2;

if($ _ POST ['number']){

$msg=$var3;

}其他{

$var1='no image'; 

$var2='no class'; 

$var3='This '.$var1.' has this class assigned:'.$var2;

$msg=$var3;

};

echo $ msg;