2009/04/28

[coldfusion]2回cffunctionの宣言ができない

ちょっとこの前、開発しているときに、びっくりしたのですが、cffunctionって同一ページで、2回宣言するとエラーになってしまうんですね。

<cffunction name="hoge">
<cfscript>
var ret = 1;
ret = ret + 1;
</cfscript>

<cfreturn ret>
</cffunction>

<cffunction name="hoge">
<cfscript>
var ret = 1;
ret = ret + 1;
</cfscript>

<cfreturn ret>
</cffunction>


しかも、cfincludeの参照先で、cffunctionを宣言して、2回以上、cfincludeタグを発行して参照しようとしてもこのエラーが発生します。

これエラーにしちゃうって、ちょっと異常なような。。。
仕様的にどうなのかな??

後で時間があれば書こうかなと思うのですが、JavaScriptや、scheme(||gacuhe)は、同じ関数を同一ページで宣言することができます。
(まぁー関数形の言語なので。)

cffunctionって書いている時点で関数言語なわけで。

oracleのpl/sqlもfunction発行できるとけど、名前通り、手続き型を謳っているから、逆にfunctionはおまけ的要素がするんだよね。
だってfunctionを使わなくても、procedureでカバーできるわけだし。

PHPだって、require_once関数を使えば、参照先の関数を一回だけ解釈を行うので、この手をエラーを回避できるのですが。

なんて不便なんだ。

0 コメント:

コメントを投稿