【问题标题】:PHP: Make an Array value into a variablePHP:将数组值转换为变量
【发布时间】:2011-08-05 00:17:04
【问题描述】:

我正在制作一个表单,我想将 POST 的值更改为一个变量。 但不知怎的,我做错了。

检查样本:

$_POST['name'] = $name;
$_POST['age'] = $age;
$_POST['country'] = $country;

此错误弹出:Parse error: syntax error, unexpected T_VARIABLE 在第一个 $_POST 上

【问题讨论】:

  • 您想将发布的值存储在单独的变量中吗?你必须把它写在相反的方向: $name = $_POST['name'];
  • 错误出现在第一个 $_POST 的前一行。请更新该代码。
  • 为什么要将变量分配给 post 数组?不确定您要在这里做什么。
  • @all 有人真的读过这个错误吗?编译器告诉他他把一个变量放在其他东西的中间。该变量是第一个 $_POST。他是做a=b还是b=a都没关系。该错误与您的解决方案无关。
  • @Khez:在单元测试中这样做可能也很有用。

标签: php arrays variables


【解决方案1】:

您不会以编程方式设置 $_POST 变量。这些是由服务器根据该页面的POST'ed 设置的(通过表单或其他方式)。

所以我很确定你想要:

$name = $_POST['name'];
$age = $_POST['age'];
$country = $_POST['country'];

这是因为赋值运算符是这样工作的:

a = b

将 a 设置为 b 的值。

【讨论】:

    【解决方案2】:

    走另一条路:

    $name = $_POST['name'];
    $age = $_POST['age'];
    $country = $_POST['country'];
    

    【讨论】:

      【解决方案3】:

      赋值从右到左工作,因此要将值 放入您必须做的变量:

      $name = $_POST['name'];
      ...
      

      您上面的代码不包含任何语法错误,它一定来自其他地方。

      【讨论】:

        【解决方案4】:

        你有这个倒过来,应该是:

        $name = $_POST["name"];  
        $age= $_POST["age"];  
        $country= $_POST["country"];  
        

        = 右边的值被分配到左边。正如您正在尝试用未分配的变量替换 post 变量一样。

        【讨论】:

        • 谢谢,但我仍然遇到同样的错误:$name = $_POST['name'];解析错误:语法错误,意外的 T_VARIABLE
        • @Gabriel 检查@AgentConundrum 的回复或我在您的 OP 中的评论。
        【解决方案5】:

        虽然其他人完全正确地指出您不应该为$_POST 超全局分配值,但您可以进行这样的分配。 $_POST 超全局毕竟只是一个数组,所以它就像一个数组。

        您看到的错误是因为 PHP 将 $_POST['name'] 识别为前面语句的一部分。检查以确保您已正确结束前一个语句(即$_POST['name'] = $name 之前的行以; 结尾)。

        您可能确实希望将 $_POST['name'] 分配给一个变量,而不是像现在这样使用它,但这不是导致错误的原因。

        【讨论】:

        • @Khez:奇怪的是,当你回复我的回答时,我正在回复你的帖子级评论。
        • 非常感谢,就是这么简单;在上一行中丢失。我也颠倒了大家所说的 A = B 顺序。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2018-04-24
        • 2011-12-18
        相关资源
        最近更新 更多