【问题标题】:Php switch not updating variablePHP开关不更新变量
【发布时间】:2017-04-06 07:29:26
【问题描述】:

我有一个变量$someVar,它包含在$test 中,并且应该在不同情况下更改它的值。问题是 $someVar 没有在 switch 语句中更新。这是我的代码:

<?php
    $someVar = '';
    $test = '<div class="test">This is ' . $someVar . '</div>';
    $param = 1;
    switch ($param) 
    {
        case ($param == 1):
            $someVar = 'some text';
            echo $test;
        break;
    };
?>

这总是输出一个空的$someVar 并回显This is 而不是This is some text。我猜这是一个范围问题,所以任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 这是因为 $someVar 最初是空的,并以空字符串分配给 $test。

标签: php variables scope switch-statement


【解决方案1】:

您在$someVar 为空的那一刻定义了$test

$someVar = '';
$test = '<div class="test">This is ' . $someVar . '</div>';

将其更改为:

<?php
    $someVar = '';
    $test = '<div class="test">This is ' . $someVar . '</div>';
    $param = 1;
    switch ($param) {
        case ($param == 1):
            $someVar = 'some text';
            echo $test;
            break;
    };
?>

这个:

<?php

$someVar = '';
$param = 1;
switch ($param)
{
    case 1:
        $someVar = 'some text';
        break;
};
$test = '<div class="test">This is ' . $someVar . '</div>';
echo $test;
?>

【讨论】:

  • @g5wx 欢迎... :)
【解决方案2】:

如果你想更新 $test 变量数据,那么你必须像下面这样更新 $test 变量-

<?php

$someVar = '';
$param = 1;
switch ($param)
{
     case 1:
        $someVar = 'some text';
        $test = '<div class="test">This is ' . $someVar . '</div>';
        break;
        case 2:
        $someVar = 'some text another';
        $test = '<div class="test">This is ' . $someVar . '</div>';
        break;
};
echo $test;
?>

【讨论】:

  • 是的,我试图避免这种方式,所以我只能在 $test 中定义元素一次。
猜你喜欢
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多