PHP从IF语句变量为变量赋值

PHP从IF语句变量为变量赋值,php,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;

我有这样的想法:

$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;
if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;
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);
我想能够显示$var3与修改后的结果,但它不工作。。。 谢谢你的回答,但我想我必须澄清一下

很抱歉搞混了

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

两种情况下的结果相同: echo$msg;将生成“此图像已分配此类:类”

我认为这是因为$var3在if语句外部构成,而不能从if语句内部更改。

使用此if条件:

if (isset($_POST['number']) AND strlen($_POST['number'])) {
...
在以下情况下使用此选项:

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

也许是这样的:

$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;
if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;
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);

也许是这样的:

$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;
if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;
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);

使用类似以下内容:

$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;
if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;
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);

真有趣!(而且很有用)

使用类似以下内容:

$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;
if($_POST['number']) {
    $var1 = 'image';
    $var2 = 'class';
} else {
    $var1 = 'no image';
    $var2 = 'no class';
}

echo 'This ' . $var1 . ' has this class assigned: ' . $var2;
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);
真有趣!(非常有用)

您可以使用以下方法实现您的目标:

$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);
我还冒昧地稍微改善了你的状况。

你可以用它来实现你想要的:

$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);

我还冒昧地稍微改善了你的状况。

你必须编写一个函数

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;

你必须写一个函数

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;

这是您的问题的解决方案

$msg=''

$var1='image'

$var2='class'

$var3='This'$var1.'已分配此类:'.$var2

如果($_POST['number'])){

}否则{

$var1='no image'; 

$var2='no class'; 

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

$msg=$var3;
})


echo$msg

这里是您的问题的解决方案

$msg=''

$var1='image'

$var2='class'

$var3='This'$var1.'已分配此类:'.$var2

如果($_POST['number'])){

}否则{

$var1='no image'; 

$var2='no class'; 

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

$msg=$var3;
})


echo$msg

格式化代码会很有帮助。如果要检查POST中的数字是否有值,则需要使用
empty()
格式化代码。如果要检查POST中的数字是否有值,则需要使用
empty()
函数var3()中存在键入错误。。您使用的是$1和$2,而不是$v1和$v2。我就是这样结束的。这是显而易见的,但我没有得到答案:)谢谢大家!对于帮助,您在函数var3()中有一个输入错误。。您使用的是$1和$2,而不是$v1和$v2。我就是这样结束的。这是显而易见的,但我没有得到答案:)谢谢大家!谢谢你的帮助谢谢你这会有用但不是我想要的。我需要使用第三个变量并减少代码量,只需将echo替换为$var3,如下->
$var3='this'$变量1。”已将此类分配给:'$var2它应该像你想要的那样工作。谢谢你,这会工作,但不是我想要的。我需要使用第三个变量并减少代码量,只需将echo替换为$var3,如下->
$var3='this'$变量1。”已将此类分配给:'$var2并且它应该按照您想要的方式工作。