2016-09-08 51 views
0

我想知道如果我在一个数组索引上使用特殊字符执行extract()会发生什么。函数提取和特殊字符

举例来说,如果我做了,在YouTube上get_meta_tags,我有这条线$array['og:url'] = 'http://....'

阵列如果我做一个extract($array),会发生什么? $og: url

+0

那么您可以随时尝试一下,让我们都知道结果。测试几乎不是一件困难的事情 – RiggsFolly

+0

要怎么试? – YMomb

+0

我不知道如何测试...... – Jacquie

回答

0

当您为extract阅读文档,有一行这样说:

检查每一个关键看它是否有一个有效的变量名。

但我尝试了你。这里是我试过的代码:

$array = array(
    'foo-čťžý' => 'bar', 
    'og:url' => 'https://google.com/', 
    'test' => 'test' 
); 

extract($array); 

echo '<pre>'; 
print_r(get_defined_vars()); 
echo '</pre>'; 

结果将是:

Array 
(
    [_GET] => Array 
     (
     ) 

    ... 

    [array] => Array 
     (
      [foo-čťžý] => bar 
      [og:url] => https://google.com/ 
      [test] => test 
     ) 

    [test] => test 
) 

所以,你可以清楚地看到,这些变量不会被提取。要试用此代码,请访问此网站PHPTESTER

+0

告诉OP如何解决像'og:url'这样的变量会很有用! – RiggsFolly

+0

而你在这个例子中并没有真正显示提取的变量,因为它们将存在于全局范围内 – RiggsFolly

+0

@RiggsFolly唯一的方法是'$ array ['og:url']'。你是这个意思? – debute