ColdFusion-Fehler mit IsDefined(): parameter muss eine syntaktisch gültige Variablen Namen

In ColdFusion, wenn ich rufe IsDefined("root.L1[1].L2") ich erhalte die folgende Fehlermeldung:

Parameter 1 der Funktion IsDefined, das ist jetzt root.L1[1].L2, muss eine syntaktisch gültige Variablen-Namen.

Dies ist ein Gültiger Variablen-name, so was gibt?

Hier ist meine vereinfachte test-code:

<cfscript>
  root = StructNew();
  root.L1 = ArrayNew(1);
  root.L1[1] = StructNew();
  root.L1[1].L2 = "foo";

  WriteOutput("root.L1[1].L2 is: #root.L1[1].L2#<br/>"); //no exception

  if(IsDefined("root.L1[1].L2")) //exception!
    WriteOutput("It is defined!");
  else
    WriteOutput("It is not defined!");
</cfscript>
  • Es ist schon eine Weile her, seit ich getan habe CF, aber das sieht nicht wie ein "variable-name" für mich. Es sieht aus wie eine variable, name (root) plus eine Eigenschaft zuzugreifen, wird ein indexer-lookup, und dann eine andere Eigenschaft zugreifen. In anderen Worten, es ist nicht ein einfacher Variablenname, es ist tatsächlich mindestens drei Methodenaufrufe unter der Decke.
InformationsquelleAutor Jenni | 2010-08-03
Schreibe einen Kommentar