確かに、オブジェクトを派生させるためarray_map
に実装するコンテナを使用する場合、これを実行ArrayAccess
するためのよりスマートでセマンティックな方法ですか?
配列マップのセマンティクスは、私が見たほとんどの言語と実装で類似しています。これは、入力配列要素に基づいて変更された配列を返すように設計されています(言語のコンパイル/ランタイムタイプの設定を無視する高レベル)。ループは、より多くのロジックを実行することを目的としています。
ID / PKでオブジェクトを取得する場合、SQLを使用しているかどうかに応じて(推奨されているようです)、フィルターを使用して有効なPKの配列を取得し、コンマでインプローディングしてSQLIN()
句に配置します。結果セットを返します。SQLを介して複数回ではなく、1回の呼び出しを行い、call->wait
サイクルのビットを最適化します。最も重要なことは、私のコードはある程度の能力を持ったどの言語の人にもよく読まれ、可変性の問題に遭遇することはありません。
<?php
$arr = [0,1,2,3,4];
$arr2 = array_map(function($value) { return is_int($value) ? $value*2 : $value; }, $arr);
var_dump($arr);
var_dump($arr2);
vs
<?php
$arr = [0,1,2,3,4];
foreach($arr as $i => $item) {
$arr[$i] = is_int($item) ? $item * 2 : $item;
}
var_dump($arr);
自分が何をしているのかがわかっている場合は、可変性の問題が発生することはありません(上書きする$arr
場合は、常に$arr = array_map
明示的にすることができます。