当前位置:  开发笔记 > 编程语言 > 正文

将字符串转换为变量

如何解决《将字符串转换为变量》经验,为你挑选了3个好方法。

我有一个多维关联数组,其中包含一些元素

$data["status"]
$data["response"]["url"]
$data["entry"]["0"]["text"]

我有一个字符串:

$string = 'data["status"]';
$string = 'data["response"]["url"]';
$string = 'data["entry"]["0"]["text"]';

如何将字符串转换为变量以访问正确的数组元素?此方法需要在任何维度上处理任何数组.



1> clawr..:

PHP的变量变量将帮助你.您可以通过在变量前添加另一个美元符号来使用它们:

$foo = "Hello, world!";
$bar = "foo";
echo $$bar; // outputs "Hello, world!"



2> Allain Lalon..:

又快又脏:

echo eval('return $'. $string . ';');

当然,输入字符串需要首先进行清理.

如果你不喜欢快速和肮脏...那么这也会起作用,它不需要eval,这甚至让我感到畏缩.

但是,它确实对字符串格式做出了假设:

 'http://www.testing.com'
);

function extract_data($string) {
    global $data;

    $found_matches = preg_match_all('/\[\"([a-z]+)\"\]/', $string, $matches);
    if (!$found_matches) {
            return null;
    }

    $current_data = $data;
    foreach ($matches[1] as $name) {
            if (key_exists($name, $current_data)) {
                    $current_data = $current_data[$name];
            } else {
                    return null;
            }
    }

    return $current_data;
} 

echo extract_data('data["response"]["url"]');
?>


因为那不会回答这个问题.

3> 小智..:

这可以通过更简单的方式完成.您所要做的就是考虑PHP提供的创建变量的函数.

$string = 'myvariable';
extract(array($string => $string));
echo $myvariable;

完成了!

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有