可能性のある複製:
関数結果を逆参照するためのPHP構文
1234#5678のような文字列があります。今私はこれを呼んでいます:
$last = explode("#", "1234#5678")[1]
それは機能していません、構文エラーがあります...しかしどこに?私が期待しているのは、$last
の5678です。これはPHPで機能していませんか?
現在のPHPバージョンでは残念ながら配列の逆参照はできません。) list
を使用できます[ドキュメント] 配列要素を変数に直接割り当てるには:
list($first, $last) = explode("#", "1234#5678");
[〜#〜]更新[〜#〜]
PHP 5.4(2012年3月1日リリース)なので、 配列の逆参照 をサポートしています。
おそらくPHPは構文によって混乱しています。explode
の結果を配列変数に代入し、それに対してインデックスを使用してください:
$arr = explode("#", "1234#5678");
$last = $arr[1];
これを1行にする方法は次のとおりです。
$last = current(array_slice(explode("#", "1234#5678"), indx,1));
ここで、indx
は配列に含めるインデックスで、例では1でした。
あなたはこれを行うことができません:
explode("#", "1234#5678")[1]
explode
は関数であり、配列ではないためです。確かに配列を返しますが、PHPでは、配列に設定されるまで関数を配列として扱うことはできません。
これを行う方法は次のとおりです。
$last = explode('#', '1234#5678');
$last = $last[1];
PHPは少し薄暗いかもしれません。おそらくこれを2行で行う必要があります。
$a = explode("#", "1234#5678");
$last = $a[1];