php - 将字符串分解为变量

标签 php

有没有办法将字符串分解成变量,例如

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.xlist()当直接将元素分配给数组时,参数从左到右分配。换句话说,您最终会以第一个值作为接收者数组中的第一个元素。

<?php
    list($a[], $a[], $a[]) = [1, 2, 3];
    var_dump($a);
?>

PHP Manual

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 Manual

关于php - 将字符串分解为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10029699/

相关文章:

php - Ajax 在下拉列表中发送相同的值但不同的选项

php - 在 localhost 上工作时的相对 URL

php - mysql 请求逻辑

php - mysql连接两个表,一个表有多个匹配行

php - MySQL 将到期时间戳与当前时间 NOW() 进行比较

php - laravel belongstomany 有条件

php - UNIX 日期操作

javascript - 简单的 JavaScript 加 PHP 数据库访问

php - 生成包含超过 50000 条记录的 pdf

php - 字符串转 HTML?