从数组中拉出变量

时间:2019-05-20 02:39:49

标签: php

我试图从一个变量中提取一个变量,该变量的名称来自另一个变量。

我尝试过$get_results[$name]$get_results->$name都没有成功。

我一直在$get_results[$name]上遇到以下错误:致命错误:未捕获的错误:无法将stdClass类型的对象用作数组 但是在$get_results->$name上它会跳过它。

$name由用户加载。 $get_results由MYSQL数据库加载

$name = 'test2'
$get_results = array('test' - > '1', 'test2' - > '2');

if (!isset($get_results[$name])) {
  if (empty($get_results[$name])) {
    $value = $get_results[$name];
  } else {
    $value = "";
  }
}
elseif(!isset($_POST[$name])) {
  $value = Input::get($name);
} else {
  $value = "";
}

我正在尝试从test2的$ get_results获取值。


我已经对脚本进行了更改:

    if(isset($get_results[$name])){
        if(!empty($get_results[$name])){
            $value = $get_results[$name];
        } else {
            $value = "";
        }
    }elseif(!isset($_POST[$name])){
        $value = Input::get($name);
    }else {
        $value = "";
    }

当我尝试从$get_results[$name]中提取数据时,它死于错误:无法将stdClass类型的对象用作数组

This shows the <code>$get_results</code> and <code>$name</code> loaded with variables. Error 1 Error 2

3 个答案:

答案 0 :(得分:2)

初始化数组时遇到语法错误。关联数组使用=>而不是->

因此,只需替换

$get_results = array ('test' -> '1', 'test2' -> '2');

使用

$get_results = array ('test' => '1', 'test2' => '2');

答案 1 :(得分:1)

首先,在将数组创建从->更新为=>时遇到语法错误。

$name = 'test2';
$get_results = array ('test' => '1', 'test2' => '2');
echo 'value will be : '.$get_results[$name];die;

输出:

value will be : 2

第二,如果 请检查以下更正的代码

$name = 'test2';
$get_results = array('test' => '1', 'test2' => '2');
if (isset($get_results[$name])) {//check if $name is in array will true
    if (!empty($get_results[$name])) {//check if $name in array is not empty
        $value = $get_results[$name];
    } else {
        $value = "test 1";
    }
} elseif (!isset($_POST[$name])) {
    $value = "test 2";//Input::get($name);
} else {
    $value = "test 3";
}
echo 'value will be : '.$value;die;

输出:

value will be : 2

答案 2 :(得分:1)

您的get_results变量返回一个对象

使用此:

get_results->$name;