質問
Phpで、多くの地図を使用した変数を配列で...ができませんようきんこつライナーc.f.例:
// the following results in an error:
echo array('a','b','c')[$key];
// this works, using an unnecessary variable:
$variable = array('a','b','c');
echo $variable[$key];
これは、小さな問題がでbuggingの中には、...ないようにするというのを使用してい変数であ;)
解決
かざる追加変ですね。だが、ここからメモリーしんだ後で:
$variable = array('a','b','c');
echo $variable[$key];
unset($variable);
やきを書くの小さな機能:
function indexonce(&$ar, $index) {
return $ar[$index];
}
を呼び出す:
$something = indexonce(array('a', 'b', 'c'), 2);
この配列は自動的に破壊されます。
他のヒント
の技術者は" 文法 のPHPの言語のみで行えるように、下付き文字表記の末 変数の表現 ない 表現 一般に、どのような作品がほとんどその他の言語を学んでいます。私はいつも見ていて不備の言語であることができるようになり、文法を解決するsubscriptsに対するの意表明.この場合、これだけparser generatorはいけない休憩の後退に対応しています。
こちらはカップルに事例の無効subscriptsに有効な表現は:
$x = array(1,2,3);
print ($x)[1]; //illegal, on a parenthetical expression, not a variable exp.
function ret($foo) { return $foo; }
echo ret($x)[1]; // illegal, on a call expression, not a variable exp.
これを配列dereferencing.に追加されていphp5.4.http://www.php.net/releases/NEWS_5_4_0_alpha1.txt
更新[2012-11-25]: としてのPHP5.5,dereferencingが追加されているcontants/文字列と配列
このような直接関係の..もっとこの発見解決特定の問題です。
私の経験からいくつかの機能は以下の形式です。
Array
(
[School] => Array
(
[parent_id] => 9ce8e78a-f4cc-ff64-8de0-4d9c1819a56a
)
)
何が欲しかったのは、parent_id値"9ce8e78a-f4cc-ff64-8de0-4d9c1819a56a".を使用した機能このようなものです。
array_pop( array_pop( the_function_which_returned_the_above_array() ) )
ではでは一線) 希望するかというか.
function doSomething()
{
return $somearray;
}
echo doSomething()->get(1)->getOtherPropertyIfThisIsAnObject();
実際に、エレガントな解決方法には以下の割り当てまでの3要素の配列で返されるmyfuncに$myvar:
$myvar = array_shift(array_splice(myfunc(),2));
やのようなことが必要な場合は、配列内の値が変
$variable = array('a','b','c');
$variable = $variable[$key];
があり oneliners まあ、php array_* ます。でも正するようで全冗長化を比較したいものを実現します。
例では利用できるように以下のものではないエレガントな解決方法とはわかりませんのこ;
array_pop ( array_filter( array_returning_func(), function($key){ return $key=="array_index_you_want"? TRUE:FALSE; },ARRAY_FILTER_USE_KEY ) );
ご利用の場合はphpの枠組みにまでこだわっと古いバージョンのphp、多くの枠組みはちます。
例:Codeigniter配列のヘルパー
が、このdereferencingが追加されたPHP>=5.4すことができましたので一線を用いternaryオペレーター:
echo $var=($var=array(0,1,2,3))?$var[3]:false;
こんなの配列のみに変更します。られないときには、いくつかの必要とする機能か---この線が使えない機能が自動的に破壊するのですが火のついで自分自身を示したことを強調しましたと unset
その後、コードの場合は使用しない機能です。