在php中使用Associative数组中的参数

时间:2015-12-26 21:14:25

标签: php arrays

我想用 $array['parameter']其中参数取自post数组或先前设置,虽然php不允许这样做? 为什么它不能像字符串语句一样使用

$string = "This is my parameter $parameter";

2 个答案:

答案 0 :(得分:1)

如果'参数'是您的帖子数组中的一个键,您可以通过以下方式访问它:

$_POST['parameter']

因此,您可以这样做:

$parameter = $_POST['parameter'];
$string = "This is my parameter $parameter";

或者,只是为了您自己的启发,您可以将数组的所有(键,值)对提取到变量中。由于$ _POST是一个数组,你可以在其上使用extract()函数。但是,使用extract()会带来固有的风险。如果你选择这条路线,请确保你有一个伟大的使用extract()的原因 - 赔率是,你能想到的任何理由都不是伟大的够了(进一步阅读:What is so wrong with extract()?)。

//We expect 'parameter' to be a key in the $_POST array.
extract($_POST);
if(isset($parameter)) {
    $string = "This is my parameter $parameter";
}

http://php.net/manual/en/function.extract.php

与往常一样,请务必清理您的输入:The ultimate clean/secure function

答案 1 :(得分:0)

使用$ array ['parameter']其中参数取自post数组或先前设置,虽然php不允许这样做?为什么它不能像字符串语句一样使用

因为你添加了一些代码,所以我会对此进行一次尝试。 如果要根据变量的值访问数组中的元素,只需

$array[$value]

如果您想使用$_POST数组所持有的值作为您的

$array[$_POST['parameter']]

如果您只想在$_POST

中设置值,则只需要这样做
if (isset($_POST['parameter']))
  // use the value here as before

现在,如果您只是想在不使用.连接运算符的情况下将数组中的值粘贴到字符串中,请将其用大括号括起来,如下所示:

$string = "This is my parameter {$array['parameter']}

使用用户输入时要小心。 @Tim有一个很好的答案链接:sanitize input