Felix Riesterer: PHP dynamische Variablenerzeugung

Beitrag lesen

Lieber Rolf,

[
  "T1.drehzahl" => [
    "plcvarname" => "T1.drehzahl", "unit" => "U/min", "actValue" => 50000 ],
  "T1.temperatur" => [
    "plcvarname" => "T1.temperatur", "unit" => "°C", "actValue" => 47 ]
]

hier doppeln sich die Array-Schlüssel mit dem Wert von plcvarname im so indizierten (Sub-)Array. In meinen Projekten ist es mir lieber, dass der Schlüssel alleine als plcvarname verstanden wird und der Name „plcvarname“ überhaupt nicht mehr in den Daten steht. Braucht es auch nicht. Ist ohnehin kein guter Variablen- oder Eigenschaften-Name.

Wenn die JSON-Daten so aussehen, dann kann man daraus in JavaScript bequem die Objekte auslesen:

{
  "T1.drehzahl": {
    "unit": "U/min",
    "value": 50000
  },
  "T1.temperatur": {
    "unit": "°C",
    "value": 47
  }
}

Es gibt in diesem per JSON beschriebenen Objekt (Literal) zwei Eigenschaften, nämlich T1.drehzahl und T1.temperatur. Diese Eigenschaften bilden jeweils ein Objekt ab, welches die Eigenschaften unit und value kennt. Wozu die Eigenschaft actValue nennen, wenn es auch value tut...

Mit einer for..in-Schleife lassen sich nun die Eigenschaften auswerten:

const json = await response.json();

for (let name in json) {
  console.log(
    "Eigenschaft",
    name,
    "wurde ausgelesen:",
    json[name].value + json[name].unit
  );
}

Liebe Grüße

Felix Riesterer