在php数组中分配变量的麻烦

时间:2015-04-15 20:33:33

标签: php arrays

我在一个更大的php类中有一个函数片段。 我也从我的数据库中获得了一些简单的数据,在获取变量时我无法进入数组。

$json = array();
    $params = array(
        'receiver_name'         => $var,
        'receiver_address1'     => 'this works'
    );

$ch = curl_init();      
$query = http_build_query($params);
        curl_setopt($ch, CURLOPT_URL, self::API_ENDPOINT . '/' . 'shipments/imported_shipment');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $query);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            $output = curl_exec ($ch);
            $http_code = curl_getinfo( $ch, CURLINFO_HTTP_CODE);
            curl_close ($ch);

            $output = json_decode($output, true);

我试图在数组开始之前分配变量,如下所示:

$var = $row['field_1'];

但是当我尝试插入此代码时,它无法正常工作。所以我接着尝试了:

$var2 = "'$var'"; // but quickly went back.

因为我认为它可能与引号有关。我已经尝试了其他几种方法让变量正确地传递到数组中。但是,当我不确切地知道要阅读什么时,我会像这样陷入困境。

  $params = array(
    'receiver_name'         => ".$var.", //this prints ..
    'receiver_name'         => "'.$var.'", //this prints '..' 

也许有人在这里可以告诉我我应该使用哪些术语来搜索与此主题相关的更多信息,因为我似乎有很多可以阅读的内容?

更新

我认为现在一切都应该被删除和简化了吗?

<?php
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    $p_name = $row['input_name'];
}

echo $p_name; // echo's correctly

class labels {
public function myFunction() {
    $json = array();
        $params = array(
                'token'                 => $this->_token,
                'name'                  => $p_name,
                'hardcoded'             => 'works fine'
    );
}
}       
echo $p_name; // echo's correctly       
?>

1 个答案:

答案 0 :(得分:1)

您正在尝试使用在类的本地范围之外声明的变量。您需要将该变量作为类方法的参数传递。

class labels {
public function myFunction($p_name) {
    $json = array();
        $params = array(
                'token'                 => $this->_token,
                'name'                  => $p_name,
                'hardcoded'             => 'works fine'
    );
}
}

当你打电话给你的方法时

$labels = new labels();
$labels->myFunction($p_name);

然后它应该工作。