2016-09-08 68 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