Rog*_*ger -1 php variables dumping
我确保这是一个非常常见的情况,当你必须测试变量(并且它们很多!)时,就像这个例子一样(我只是为了减少工作量而将这样的变量命名为vars):
$variable0='red';
$variable1='blue';
$variable2='green';
$variable3='pink';
$variable4='purple';
$variable5='hellow';
$variable6='foo';
$variable7='bar';
$variable8='hi';
$variable9='bye';
echo
'$variable0='.$variable0.'<br>
$variable1='.$variable1.'<br>
$variable2='.$variable2.'<br>
$variable3='.$variable3.'<br>
$variable4='.$variable4.'<br>
$variable5='.$variable5.'<br>
$variable6='.$variable6.'<br>
$variable7='.$variable7.'<br>
$variable8='.$variable8.'<br>
$variable9='.$variable9;
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有更好的方法使这种回声/转储/打印更容易?
当然,还有其他方法可以完成同样的主席工作:
$x=
'$variable0='."$variable0\n".
'$variable1='."$variable1\n".
'$variable2='."$variable2\n".
'$variable3='."$variable3\n".
'$variable4='."$variable4\n".
'$variable5='."$variable5\n".
'$variable6='."$variable6\n".
'$variable7='."$variable7\n".
'$variable8='."$variable8\n".
'$variable9='."$variable9"
echo nl2br($x);
Run Code Online (Sandbox Code Playgroud)
要么:
$x=<<<HEREDOC
\$variable1=$variable1
\$variable2=$variable2
\$variable3=$variable3
\$variable4=$variable4
\$variable5=$variable5
\$variable6=$variable6
\$variable7=$variable7
\$variable8=$variable8
\$variable9=$variable9;
HEREDOC;
echo nl2br($x);
Run Code Online (Sandbox Code Playgroud)
但也许PHP有一个功能,使这更容易?
顺便说一句,上面的所有3个解决方案都相同:
$variable1=blue<br>
$variable2=green<br>
$variable3=pink<br>
$variable4=purple<br>
$variable5=hellow<br>
$variable6=foo<br>
$variable7=bar<br>
$variable8=hi<br>
$variable9=bye;
Run Code Online (Sandbox Code Playgroud)
介绍compact:
var_dump(compact('foo', 'bar', 'baz'));
Run Code Online (Sandbox Code Playgroud)
不过,请注意,我明确地使用了三个非常不同的变量:$foo,$bar和$baz.
如果你真的有字面意思$foo1,$foo2等等,你真的真的想要使用数组.倾销也是微不足道的:
$foo = array();
$foo[0] = 'bar';
$foo[1] = 'baz';
var_dump($foo);
Run Code Online (Sandbox Code Playgroud)
一般来说,如果你有太多的变量浮动,你的范围可能太大,你应该将所有内容重构为许多较小的函数,或者你的算法比它需要的更复杂,或者你应该使用数组或其他而是数据结构.