を呼び出し、呼び出しなさい:PHP:次の関数を仮定すると、参照配列名
function doSomething(&$someArray) {
// Do something to $someArray
}
$names=array("John", "Paul", "George", "Ringo");
doSomething($names);
する関数内から参照される配列(この場合は「名前」)の名前を取得する方法はありますか?私は、配列変数の名前のために関数に別の引数を追加するためにリファクタリングすることができますが、それはバグを招くだけです。ユースケースは、各配列$ someSillyNameに対して、関数はデータベーステーブルsomeSillyNameにアクセスする必要があるということです。
ありがとうございました。
いいえ、ありません。 '$ names'は呼び出し側の名前* local *です。その情報は、呼び出された関数では利用できません。呼び出し元のソースコードを読むことができません。 – Borealid
@Borealidは、あなたがそこで提供したものではなく、シンプルな配列には、そのような情報を得るためにアクセスできるnameプロパティはありません。ただし、クラスを渡した場合は、クラス名を取得できますが、その場合でも変数の名前は取得できません。 –
あなたのユースケースからどこに来ているのかが分かりますが、間違った方法であると私には信じています。 2つの異なる結果を取り出して '$ names1'と' $ names2'に格納する必要がある場合はどうなりますか?コードが壊れたり、コードを不必要に複雑にしたりするために、後方に曲げる必要があります。 *それはバグにつながる*問題です。 – deceze