我试图从一个变量中提取一个变量,该变量的名称来自另一个变量。
我尝试过$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类型的对象用作数组
答案 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;