有没有办法将字符串分解成变量,例如
some_function($min, $max, "3, 20");
$min 被赋值 3,$max 被赋值 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 中,当将一个值直接赋给另一个数组时,作为该数组的一个元素,list()
在 PHP 5.x 中,值是从右到左分配的,而不是从左到右。换句话说,您最终会得到向后填充的数组(最后一个值,第一个)。
https://www.php.net/manual/en/migration70.incompatible.php
在 PHP 7.x 中 list()
当直接将元素分配给数组时,参数从左到右分配。换句话说,您最终会以第一个值作为接收者数组中的第一个元素。
<?php list($a[], $a[], $a[]) = [1, 2, 3]; var_dump($a); ?>
PHP 5.X 最后一个值获取第一个元素位置,但接收者必须是一个数组(在本例中 $a 是数组)!
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
PHP 7.x第一个值成为第一个数组元素。
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
关于php - 将字符串分解为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10029699/