の間にアンダースコアを追加することができ、私はは、どのように私は2人の変数名
picture1_en
picture2_en
...
picture1_de
picture2_de
...
picture1_it
picture2_it
と呼ばれるいくつかのDBフィールドがはい、それは別の方法で実装されている可能性が、私は実装を変更することはできません。
私は今、「デ」または「エン」または「それ」
が含まれています$ LANGという変数を持って、私は値を印刷したい場合は、私はこの使用することができたとします
for($i=1; $i<=10; ++$i)
echo $r["picture$i_$lang"];
問題はPHPがアンダースコアを変数名の一部として解釈することです(例えば、 "$ i_"と解釈します)。アンダースコアを逃げようとしましたが、それほど狂気のようなことはありませんでした。
確かに、私は
echo $r["picture".$i."_".$lang];
を行うことができます。しかし、文字列リテラルとしてではなく、変数名の一部として「_」を解釈するためにPHPを強制する方法がある場合、私は思っていました。
最後のコードスニペットとまったく同じです。 – ImprobabilityCast
'$ i_'が未定義であることを通知します。また、ドット記法でキーに加わる最後の解決策には何も問題はありません。 – Scuzzy
@ImprobabilityCastが言ったように...あなたの最後の例はうまくいきますが、 '$ r ['picture'。$ i '。$ lang];を' concat'ingするときに二重ではなく一重引用符を使用します引用符の中で何も解釈されないことを明確にしてください。 – IncredibleHat