私は多くのトピックを検索してきましたが、私の具体的なニーズはまだ分かりませんでした。多くの変数の文字列としてPHP変数名を取得する
This Threadから多くのオプションを試しましたが、どれも正しいものはありませんでした。
私はそれを合理化しようと、そうではなく、各インターフェイスの設定の配列を持っています 、スイッチやルータの設定ジェネレータを作っています、私は、レイアウトの種類ごとに設定配列を持っており、インタフェース名を持っています変数として。 私はスクリプトに投稿しているWebページを持っており、ポストごとにポートレイアウトを掲示するページを持っています。
など$fa1 = "DESKTOP";
$fa2 = "VOIP";
$fa3 = "DESKTOP";
$fa4 = "";
$fa5 = "DESKTOP";
すなわち
私は配列としてのインターフェイスの設定と(など)各インターフェイスを経由する
$ints = array($fa1,$fa2,$fa3,$fa4,etc);
foreach ($ints as $line) {
if ($line == "PC") {
file_put_contents($file, $pcarray.FILE_APPEND);
}
if ($line == "VOIP") {
file_put_contents($file,$voiparray.FILE_APPEND);
}
}
をforeachループを使用しようとしています:
$pcarray = array(
'interface ' .$interface,
'configetc'
);
インターフェイスの変数の名前を取得する関数が必要なので、$ interface変数に割り当てることができますル。
私が見つけて試したすべての例は、これまでのところ価値のある変数と互換性がないようです。
ie。上記の場合、ほとんどの場合、次のデスクトップの場合はfa3ではなくDESKTOPになるすべてについてfa1が返されます。
かなりいけない私が望むどのように動作するものの例は次のとおりです。
function print_var_name($var) {
foreach($GLOBALS as $var_name => $value) {
if ($value === $var) {
return $var_name;
}
}
return false;
}
最初の後の各変数値の繰り返しのためにこの1つは、単に最初の変数名を返しました。
EDIT: だろう私は戻って取得したいのです:
現在取得イムとして(as the written array)
interface fa1
standard desktop config
interface fa2
standard voip config
interface fa3
standard desktop config
interface fa5
standard desktop config
:あなたは変数名にあなたがしようとしている方法を取得することはできません
interface fa1
standard desktop config
interface fa2
standard voip config
interface fa1
standard desktop config
interface fa1
standard desktop config
あなたの質問は、あなたが望むが、無回答の多くを持っていた理由はおそらくこれは非常に明確ではありません。私はあなたが何をしようとしているのかを理解することができると思う。だから、変数名を '$ interface'変数に代入するときに値が重複することは望ましくありません。例えば'fa1'が既に' DESKTOP'に割り当てられている場合、 'fa3'を使用しますか? – Kitson88
確かに、アイデアはすべての同様のインターフェイスに1つのテンプレートを使用し、毎回(foreachループ内で) のようにインターフェイス値を割り当てるだけなので、fa1、fa2、fa3で1ラウンドを実行しますが、インタフェースは値を持つインタフェースのみを割り当てるようにします。 ie。 fa5が使用されていないのにfa6がデスクトップの場合fa5をスキップします(その部分は私のために働いていました) ここで、他のすべての方法では、毎回fa1を置いたままの値それはデスクトップの値を渡って来る –