2013-10-15 71 views
0

我有一個函數,它使用print_r吐出一個數組,並且希望捕獲變量中的信息,以將其輸入到特定用例的函數中。 我簡化了輸出以便於理解。如何格式化var_dump的輸出以用作變量?

[fruit] => 'banana' 
[color] => 'yellow' 
[sizes] => array('small', 'medium') 

我想它格式化爲這樣:

$var = 'fruit' => 'banana', 'color' => 'yellow', 'sizes' => array('small', 'medium'); 

這樣我可以複製和粘貼第一的輸出,並將其分配給新的默認變量。

+0

考慮使用[JSON](http://www.php.net/manual/en/function.json-encode.php)。 – kojiro

+2

我不明白你爲什麼複製/粘貼任何東西?爲什麼不把變量傳遞給函數呢? –

+0

['var_export()'](http://php.net/manual/en/function.var-export.php)會工作嗎? –

回答

1

功能此:

  1. var_export()
    • 臨:在產出,可以是簡單地複製/粘貼到一個PHP腳本的格式。
    • Con:必須粘貼到腳本中。如果您使用eval()來閱讀它,那是很可怕的做法,我會削減你的。
  2. json_encode()/json_decode()
    • 臨:廣泛應用於跨許多語言,人類可讀的,容易理解。
    • 缺點:本身不支持舊版本的PHP
  3. serialize()/unserialize()
    • 專業:可在PHP的所有版本
    • 缺點:利用非打印字符[像空字節]認爲可能會導致IO工作流程出現問題,這些工作流程並未明確知道這一事實。
+0

'var_export()'對我所做的事情完美無缺。這是一份州和它們的緯度和經度的列表。如果需要的話,我最終會把它們放入數據庫中,但現在這個效果很好。 – neoian

0

嘗試用<pre></pre>標籤包裝它,所以它看起來就像是:

echo '<pre>'; 
var_dump($var); 
echo '</pre>'; 
+0

這給了前者,我期待打印後者。 – neoian

0

也可以考慮的print_r其操作類似,但提供了第二個參數,當設置爲'true'將返回值作爲變量而不是將其打印到STDOUT。