Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU - |
目次
索引
![]() ![]() |
第7章 WebScript言語 | > 7.3 変数 |
グローバル変数およびシステム変数は、どれか1つの「パッケージ」に属します。同じ名前をもつ変数でも、属するパッケージが異なれば、それらは異なる変数として取り扱われます。
パッケージ(package)に属する変数varを指定するには、「::」を用いて「package::var」と表記します。
指定した名前のパッケージが存在しない場合は、エラーになります。
パッケージ名に関する規約については、“命名規約”を参照してください。
パッケージによって修飾されない変数名varが指定された場合、どの変数が参照されるかのルールについて、以下に示します。
ローカル変数varが存在する場合は、ローカル変数が参照されます。
カレントパッケージに属する変数varが存在する場合は、その変数が参照されます。
どちらも存在しない場合は、新しいローカル変数varが作成され、その変数が参照されます。
任意の時点で、「カレントパッケージ」と呼ばれるパッケージが定まっています。パッケージ名を指定しないでグローバル変数を指定した場合は、カレントパッケージに属する変数が参照されます。
フォーマットファイルの解釈がスタートするときのカレントパッケージは、「""(空文字)」です。カレントパッケージは、<!PACKAGE>タグによって変更することができます。
以下のex1.html、ex2.html、ex3.htmlおよびex4.htmlはフォーマットファイルです。
【ex1.html】
<HEAD> <TITLE>Package Example 1</TITLE> <!PACKAGE "mypkg"> </HEAD> <BODY> <!VAR abc SCOPE="GLOBAL" VALUE="global-abc"> : <!HREPLACE 'abc'> → 表示は「global-abc」です。 : |
【ex2.html】(同じパッケージからの呼び出し)
<HEAD> <TITLE>Package Example 2</TITLE> <!PACKAGE "mypkg"> </HEAD> <BODY> <!HREPLACE 'abc'> → まずローカル変数abcを参照しようとしますが定義されて いないので、ex1.htmlで宣言されたグローバル変数abcが 採用されます。 表示は「global-abc」です。 : (ローカル変数abcの値を宣言する) <!VAR abc VALUE="local-abc" SCOPE="LOCAL"> ローカル変数abcは、ex1.htmlで宣言したグローバル変数abcとは違うものになります。 : <!HREPLACE 'abc'> → パッケージ名による修飾がないので、ローカル変数abcを 参照します。表示は「local-abc」です。 ex1.htmlで宣言したグローバル変数を参照したい場合は、パッケージ名で修飾します。 <!HREPLACE 'mypkg::abc'> → これはグローバル変数のabcなので、表示は「global-abc」 となります。 : |
【ex3.html】(別パッケージからの呼び出し)
<HEAD> <TITLE>Package Example 3</TITLE> <!PACKAGE "anotherpkg"> (ex1.htmlとは別のパッケージを宣言) </HEAD> <BODY> <!VAR abc VALUE="another-abc" SCOPE="GLOBAL"> <!HREPLACE 'abc'> → このフォーマットファイルのローカル変数abcを参照しよう としますがローカル変数abcは宣言されていないので、カ レントパッケージのグローバル変数abcを参照します。 表示は「another-abc」です。 カレントパッケージ以外のグローバル変数を参照する方法は以下のとおりです。 <!HREPLACE 'mypkg::abc'> → これはmypkgパッケージのグローバル変数abcを指します。 表示は「global-abc」です。 : |
【ex4.html】(パッケージ指定のない場合)
<HEAD> <TITLE>Package Example 4</TITLE> <!----- PACKAGE宣言なし -----> </HEAD> <BODY> <!VAR abc VALUE="global-non-abc" SCOPE="GLOBAL"> <!VAR abc VALUE="local-non-abc" SCOPE="LOCAL"> <!HREPLACE 'abc'> → ローカル変数abcを指します。 表示は「local-non-abc」です。 グローバル変数abcを指すためには、パッケージで修飾しなければ なりませんが、パッケージ名が宣言されていないので、デフォルトの パッケージである空文字列で修飾します。 <!HREPLACE '::abc'> → グローバル変数abcを参照します。 表示は「global-non-abc」です。 |
目次
索引
![]() ![]() |