2011-04-14 115 views
2

因为我使用的是json,所以它注释了我无法在有效的json上传递值。php var_dump equivelant或print_r

是否只是返回var转储的值而没有它回显,正在输出到浏览器。

例如

$data = 'my_data'; 
get_var_dump($data);//not real func 
//should do nothing. 
$get['data'] = get_var_dump($data); 
$get['error']= false; 
echo json_encode($get); 
//should be something like 
//{"data,"string(7) my_data","error":false} 

或print_r相当于我只想分配给var而不是输出它。

或者如果你是一个WordPress的粉丝,bloginfo('url')之间的区别;和get_bloginfo('url');应该更容易:)

+0

你是说,你要打印的值使用echo关键字与画面之外? – 2011-04-14 15:47:16

+0

ok'var_dump'应该是'function var_dump($ str){return $ str; }'不'函数var_dump($ str){echo $ str;}'这样我可以将它分配给一个变量 – Val 2011-04-14 15:49:52

回答

8

print_r可以选择第二个参数。设置为true时,它将以数组形式返回转储,而不是显示它。

http://us2.php.net/print_r

+0

还有[var_export](http://php.net/var_export)。 – cmbuckley 2011-04-14 15:49:45

+1

多数民众赞成多我正在寻找...所以习惯于'print_r'正常的方式,我甚至不知道它存在,但thnx :) – Val 2011-04-14 15:51:26

+1

迂腐笔记:'print_r'是'var_dump'的一个非常不同的输出。 Print_r只显示结构和近似值(可打印值)。 'var_dump'实际上显示了确切的值和结构,包括字符串长度。我个人觉得'print_r'没有用,因为'var_dump'有很多额外的有价值的信息... – ircmaxell 2011-04-14 16:06:18

10

当然可以!为此,您需要两个PHP缓冲区函数:ob_startob_get_clean。第一个开始缓冲,当第二个获得价值和清理缓冲区时。例如:

ob_start(); 
var_dump($array); 
$value = ob_get_clean(); 
+3

不理解downvotes。由于'var_export()','var_dump()'和'print_r()'的格式略有不同,所以至少应该提到这个。 – KingCrunch 2011-04-14 15:54:03

+1

我的回答有什么问题?这是工作..我不明白为什么脂肪肝是downvoting .. – Robik 2011-04-14 15:55:45

+2

Downvoters:请注意,这是*完全*如何[print_r](http://us3.php.net/manual/en/function.print- r.php)和[var_export](http://us3.php.net/manual/en/function.var-export.php)在内部工作以返回而不是输出。所以如果你想要'var_dump'的不同格式(包括类型和大小),这实际上是正确的方法... – ircmaxell 2011-04-14 16:03:47

2

检查var_export()功能:
http://php.net/manual/en/function.var-export.php

你传递一个变量给它和第二个布尔参数,如果第二个参数是真正的函数返回一个字符串变量的rapresentation :

<?php 
$a = array(1, 2); 
$dump = var_export($a, true); 

print $dump; 
?> 

$dump包含有类似

array (
    0 => 1, 
    1 => 2, 
) 
2

每个人都打我给它:var_export()

+0

hhahaha我刚才看到后,我发布自己大声笑+1 tho – Val 2011-04-14 15:52:20

相关问题