爆炸字符串到变量
问题描述:
有没有办法爆炸字符串到变量,例如爆炸字符串到变量
some_function($min, $max, "3, 20");
,使得$分钟被赋值为3和$最大赋值为20
我知道我可以简单地使用
$data = explode("3, 20");
只是想知道是否有另一种方式。
答
PHP的语言结构list()
可以通过分配一个数组来执行多个赋值给变量(甚至是其他数组键)。
list($min, $max) = explode(",", "3,20");
但是,你仍然需要一个trim()
适用于您的变量,因为$max
值将有一个前导空格,或更换explode()
与preg_split('/\s*,\s*/', $string)
将它拆分的逗号和空白。
注:使用与list()
谨慎,以确保您要指定数组包含相同数量的元素作为list()
有变量。它们在PHP 5.x中从右到左进行分配,而不是从左到右,因此如果您碰巧用右侧的原始内容覆盖左侧的变量,则可能会得到意想不到的结果。这通过示例in the PHP docs进行了详细说明。
更新PHP 7: PHP 7改变了分配秩序的行为向右
技术上使得
list()
参数从左分配即是'列表)中*语言结构*('。但+1。 – DaveRandom 2012-04-05 13:41:07@DaveRandom我没有说'list()'是一个函数,我说这是__list()的函数。微妙,但我会澄清无论如何:) – 2012-04-05 13:41:47
啊,touché... ;-) – DaveRandom 2012-04-05 13:42:25