文字列を変数に分解する方法はありますか?
some_function($min, $max, "3, 20");
$min には値 3 が割り当てられ、$max には値 20 が割り当てられます。
私は単に使用できることを知っています
$data = explode("3, 20");
別の方法があるかどうか疑問に思っています。
文字列を変数に分解する方法はありますか?
some_function($min, $max, "3, 20");
$min には値 3 が割り当てられ、$max には値 20 が割り当てられます。
私は単に使用できることを知っています
$data = explode("3, 20");
別の方法があるかどうか疑問に思っています。
PHP の言語構造list()
は、配列を代入することにより、変数 (または他の配列キー) への複数の代入を実行できます。
list($min, $max) = explode(",", "3,20");
ただし、値の先頭にスペースがあるtrim()
ため、変数にa を適用する$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)
}