2012-04-05 1 views
7

に文字列を爆発変数に文字列を爆発する方法はあります$分を値3と$ maxのを割り当てられるようには変数

some_function($min, $max, "3, 20"); 

を例えば値が20

が割り当てられている私が知っているI単純に使用することができます

$data = explode("3, 20"); 

別の方法があるかどうかは疑問です。

答えて

17

PHPの言語構造list()は、配列を割り当てることによって、変数(または他の配列キー)への複数の代入を実行できます。 $max値は先頭のスペースを持っている、またはカンマや周囲の空白文字の上にそれを分割するpreg_split('/\s*,\s*/', $string)explode()に代わるので、

list($min, $max) = explode(",", "3,20"); 

はしかし、あなたはまだ、変数にtrim()を適用する必要があります。

注:list()変数を持っているとして、あなたが代入している配列が同じ数の要素が含まれていることを確認するためにlist()に注意してください。 PHP 5.xでは左から右には割り当てられていないので、左の変数を右の元の内容で上書きすると、予期しない結果が生じる可能性があります。これは例in the PHP docsで詳細に説明されています。 PHP 7用

更新: PHP 7はlist()引数は左から `リスト()`の*言語構造の*は右

+0

技術的に割り当てられるように割当順序動作を変更します。しかし+1。 – DaveRandom

+2

@DaveRandom私は 'list()'が関数だとは言っていませんでしたが、私はそれが 'list()'の関数だと言っています。微妙ですが、私はとにかく明確にします:) –

+0

ああ、touché... ;-) – DaveRandom